我正在创建一个示例twilio短信应用程序。我可以通过在应用程序中单击按钮发送短信。但是我需要的是如何获取已发送消息的状态并对其进行烘烤。我知道这是twilio的状态回调。如何实现。
我的代码部分
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button send=findViewById(R.id.send);
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.setThreadPolicy( new StrictMode.ThreadPolicy.Builder().permitAll().build() );
}
send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OkHttpClient client = new OkHttpClient();
String url = "https://api.twilio.com/2010-04-01/Accounts/"+"AC*********************"+"/SMS/Messages";
String base64EncodedCredentials = "Basic " + Base64.encodeToString(("AC*********************"+ ":" + "df55**********************").getBytes(), Base64.NO_WRAP);
RequestBody body = new FormBody.Builder()
.add("From", "+123456789")
.add("To", "+1847085532")
.add("Body", "hello test")
.build();
Request request = new Request.Builder()
.url(url)
.post(body)
.header("Authorization", base64EncodedCredentials)
.build();
try {
Response response = client.newCall(request).execute();
Log.d(TAG, "sendSms: "+ response.body().string());
}catch (IOException e) { e.printStackTrace(); }
}
});
}
答案 0 :(得分:1)
StatusCallBack函数通过Web挂钩运行,即Twilio可以调用的服务器上的Internet可访问URL,其中包含已发送消息的状态详细信息。就您而言,您似乎正在通过移动应用程序发送消息。您需要站起来自己的后端服务器,该服务器可以侦听来自Twilio的传入状态回调请求,并将它们适当地传达到您的移动设备。
Twilio中的状态回调:https://www.twilio.com/docs/sms/tutorials/how-to-confirm-delivery-java