Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我如何知道SMS是否已到达Twilio的目的地_Java_Sms_Twilio_Sms Gateway - Fatal编程技术网

Java 我如何知道SMS是否已到达Twilio的目的地

Java 我如何知道SMS是否已到达Twilio的目的地,java,sms,twilio,sms-gateway,Java,Sms,Twilio,Sms Gateway,我正在开发一个web应用程序,我正在使用twilio gateway发送短信。我需要在我的页面上显示短信的状态。如果短信已发送,则它将显示已发送,否则它将显示待定。所以,请告诉我,我如何知道消息是否已发送 下面是示例代码 public class Example { public static final String ACCOUNT_SID = "AC5b8866a232v3b63bfgh0f9a872b2dfddd"; public static final String AUTH

我正在开发一个web应用程序,我正在使用twilio gateway发送短信。我需要在我的页面上显示短信的状态。如果短信已发送,则它将显示已发送,否则它将显示待定。所以,请告诉我,我如何知道消息是否已发送

下面是示例代码

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);

  }
}
公共类示例{
公共静态最终字符串帐户\u SID=“AC5B8866A232V3B63BFGH0F9A872B2DFDD”;
公共静态最终字符串AUTH_TOKEN=“7a0068ca7d07036cbbddeba03370aujdhnm”;
公共静态void main(字符串[]args)引发TwilioRestException{
TwilioRestClient=新的TwilioRestClient(帐户SID,身份验证令牌);
Map params=新的HashMap();
参数put(“至”、“+编号”);
参数put(“From”、“+number”);
System.out.println(System.getProperty(“java.class.path”);
SmsFactory messageFactory=client.getAccount().getSmsFactory();
Sms message=messageFactory.create(参数);
}
}

正是您所需要的。我认为响应是
排队
发送
发送
,或者
失败
,这里的Twilio福音传道者

首先请注意,该资源已被弃用,您现在应该使用新的端点。您可以查看quickstart以获取更新的Java代码,该代码显示了如何将新资源与Java helper库一起使用

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

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


希望这能有所帮助。

感谢您的回答,它只显示排队,但如何知道其他2个响应(发送、发送)。如果我给出了错误的手机号码,它会抛出异常。您有任何解决方案?我正在使用message.getStatus()并显示排队。但Nishants的回答告诉我getStatus将显示sent、sending、queued感谢您的回答,我对这一行感到困惑。首先请注意,SmsMessages资源已被弃用,您现在应该使用新的Messages端点。请告诉我问题中的代码是否已被弃用。这是正确的使用方法吗。您文章中的代码仍然有效,但已被弃用。查看我答案中包含的quickstart的链接,以获得正确的Java代码。调用getStatus只会返回Twilio在响应您的请求时向RESTAPI发送的状态参数的值。Twilio无法在发送给您后更新此响应,因此getStatus的值将始终相同。如果您希望在messags状态随时间变化时收到通知,则需要按照我的建议使用StatusCallback。希望澄清。感谢回复,+1感谢您的帮助。如果我调用message.getStatus(),那么它会打印队列,如果我调用client.getAccount().getSms(message.getSid()).getStatus(),它会打印已发送。请告诉我如何获得发送状态我完全困惑。告诉我可以使用这个吗。如果是的话,那你为什么提供这个