首页 > 解决方案 > 无法实现 Twilio StatusCallback

问题描述

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



        }
    });

}

标签: androidtwilio

解决方案


StatusCallBack 函数通过 webhook 工作,即 Twilio 可以调用的服务器上可访问 Internet 的 URL,其中包含已发送消息状态的详细信息。在您的情况下,您似乎是通过移动应用程序发送消息。您需要建立自己的后端服务器,该服务器可以侦听来自 Twilio 的传入状态回调请求,并将它们适当地传达给您的移动设备。

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


推荐阅读