有没有办法通过Twilio发送短信时知道失败的原因

时间:2013-12-04 08:05:31

标签: java sms twilio sms-gateway

我需要知道通过twilio发送文本时失败的原因。

目前,我这样做sid = gateway.send(params);

如果sid为null,我认为发送失败。有没有办法知道失败状态的原因?

我看到了这个:https://www.twilio.com/docs/api/rest/sms#sms-status-values

读到这篇文章,我认为不可能知道失败的原因,是吗?

1 个答案:

答案 0 :(得分:0)

Twilio传道者在这里。

所以我不确定我是否理解你的问题,所以我会给你两个可能的答案。两者都假设您正在使用Twilio Java帮助程序库。

1)如果对Twilio REST API的请求失败(如API返回400错误请求响应),如何获取错误详细信息?

如果您向Twilio API发出请求并传入错误的凭据或错误的请求参数,Java库将引发异常。您可以在此处阅读有关如何处理Java库抛出的异常的更多信息:

https://www.twilio.com/docs/java/install

Twilio将返回的错误列表如下:

https://www.twilio.com/docs/errors/

2)如何知道我要求Twilio发送的消息是否未能送达?

当您调用create方法时,库将返回一个Message对象的实例:

Message sms = messageFactory.create(params);

这基本上要求Twilio向将要将其发送到手机的运营商发送消息。有时我们无法将信息传达给运营商,当发生这种情况时,我们会将信息状态设置为“失败”。您可以从Message对象获取状态值:

http://twilio.github.io/twilio-java/com/twilio/sdk/resource/instance/Message.html

请注意,status参数的初始值可能是“排队”的。如果是这种情况,并且您仍然希望在消息失败时收到通知,那么我可以建议使用状态回调功能。这使您可以为Twilio提供一个URL,我们将在消息状态更改时请求该URL。

希望有所帮助。