无法实现Twilio StatusCallback

时间:2018-10-17 11:19:45

标签: android twilio

我正在创建一个示例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(); }



        }
    });

}

1 个答案:

答案 0 :(得分:1)

StatusCallBack函数通过Web挂钩运行,即Twilio可以调用的服务器上的Internet可访问URL,其中包含已发送消息的状态详细信息。就您而言,您似乎正在通过移动应用程序发送消息。您需要站起来自己的后端服务器,该服务器可以侦听来自Twilio的传入状态回调请求,并将它们适当地传达到您的移动设备。

Twilio中的状态回调:https://www.twilio.com/docs/sms/tutorials/how-to-confirm-delivery-java