【问题标题】:how do I know if SMS has reached at destination in Twilio我如何知道 SMS 是否已到达 Twilio 的目的地
【发布时间】:2013-11-09 07:44:14
【问题描述】:

我正在开发一个 Web 应用程序,并且我正在使用 twilio 网关发送 SMS。我需要在我的页面上显示 SMS 的状态。如果发送了 SMS,那么它将显示已发送,否则它将显示待处理。所以请告诉我如何知道消息是否已送达。

以下是示例代码

public class Example {

  public static final String ACCOUNT_SID = "AC5b8866a232v3b63bfgh0f9a872b2dfddd";
  public static final String AUTH_TOKEN = "7a0068ca7d07036cbbddeba03370aujdhnm";

  public static void main(String[] args) throws TwilioRestException {
    TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN);

    Map<String, String> params = new HashMap<String, String>();

    params.put("To", "+number");
    params.put("From", "+number");
 System.out.println(System.getProperty("java.class.path"));
    SmsFactory messageFactory = client.getAccount().getSmsFactory();
    Sms message = messageFactory.create(params);

  }
}

【问题讨论】:

    标签: java sms twilio sms-gateway


    【解决方案1】:

    Twilio 布道者在这里。

    首先请注意SmsMessages 资源已被弃用,您现在应该使用新的Messages 端点。您可以查看 Sending SMS Messages 快速入门以获取更新的 Java 代码,其中展示了如何将新资源与 Java 帮助程序库一起使用。

    其次,为了在消息状态更改时接收通知,您应该在发送消息时包含StatusCallback 参数。包含此参数会告诉 Twilio 在消息状态更改时向参数 URL 发出请求。

    另请注意,由于您的帖子标题不清楚,“已发送”状态简单意味着 Twilio 已成功将消息发送给运营商。这并不一定意味着承运人能够将消息传递给预期的收件人。

    希望对您有所帮助。

    【讨论】:

    • 我正在使用 message.getStatus() 它显示我已排队。但 Nishants 的回答告诉我 getstatus 将显示已发送、发送、排队
    • 感谢您的回答,我对这一行感到困惑首先请注意,SmsMessages 资源已被弃用,您现在应该使用新的消息端点。请告诉我问题中的代码是否已弃用。这是正确的使用方式吗?
    • 您帖子中的代码仍然可以使用,但已被弃用。查看我的答案中包含的快速入门链接,以获取要使用的正确 Java 代码。调用 getStatus 只会返回 Twilio 在响应您对 REST API 的请求时发送的任何状态参数值。一旦发送给您,Twilio 将无法更新此响应,因此 getStatus 的值将始终相同。如果您想在消息状态随时间变化时收到通知,您需要按照我的建议使用 StatusCallback。希望澄清。
    • 感谢您的回复,+1 的帮助。好吧,如果我打电话给 message.getStatus() 那么它会打印排队,但是如果我打电话给 client.getAccount().getSms(message.getSid( )).getStatus() 它打印已发送。请告诉我如何获取发送状态
    • 我完全糊涂了。告诉我我能用这个twilio.com/docs/quickstart/java/sms/sending-via-rest。 iF 测试然后你为什么提供这个twilio.com/docs/api/rest/message
    【解决方案2】:

    Message.getStatus() 是您所需要的。我认为响应是queuedsendingsentfailed 之一。

    【讨论】:

    • 感谢您的回答,它只显示我在排队,但如何知道其他 2 个响应(发送、发送)。如果我输入错误的手机号码,则会引发异常
    • 您有什么解决方案?
    猜你喜欢
    • 1970-01-01
    • 2016-04-24
    • 2022-10-18
    • 2021-08-04
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多