android - 无法实现 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(); }
}
});
}
解决方案
StatusCallBack 函数通过 webhook 工作,即 Twilio 可以调用的服务器上可访问 Internet 的 URL,其中包含已发送消息状态的详细信息。在您的情况下,您似乎是通过移动应用程序发送消息。您需要建立自己的后端服务器,该服务器可以侦听来自 Twilio 的传入状态回调请求,并将它们适当地传达给您的移动设备。
Twilio 中的状态回调:https ://www.twilio.com/docs/sms/tutorials/how-to-confirm-delivery-java
推荐阅读
- google-data-studio - 如何在条形图上获取百分比(Google Data Studio)
- git - 不好:git克隆问题
- javascript - WebGL 三角扇缺少切片
- r - to.period 不能与 xts 格式结合使用
- css - 带有 fomantic-ui 和 fontawesome-free 的 sapper/svelte
- python - sklearn 绘制 tfidf 二元 LogisticRegression 分类器的决策边界
- javascript - Boostrap 4.5 中模态内轮播中的延迟加载/延迟图像
- html - 如何检查是否给出了对象属性?
- javascript - React 组件中对 Set 的迭代不会在 JSX 中呈现
- sql - 使用分页优化 SQL 查询