我需要知道通过twilio发送文本时失败的原因。
目前,我这样做sid = gateway.send(params);
如果sid为null,我认为发送失败。有没有办法知道失败状态的原因?
我看到了这个:https://www.twilio.com/docs/api/rest/sms#sms-status-values
读到这篇文章,我认为不可能知道失败的原因,是吗?
答案 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。
希望有所帮助。