如何解决在 google appscript 上捕获 Twilio 的拨出呼叫状态
我正在尝试获取传出 twilio 呼叫的状态并将其更新到电子表格中。 “已完成、忙碌、无应答、取消、失败”。
但是,我不知道在哪里包含 StatusCallBackEvent 以及如何从 Google Apps 脚本访问检索到的状态。
这是我必须发起出站呼叫的代码。
function makeCall(to) {
var call_url = "https://api.twilio.com/2010-04-01/Accounts/" + TWILIO_ACCOUNT_SID + "/Calls.json";
var payload = {
"To": "+" + String(to),"From" : TWILIO_NUMBER,"Url": "http://a1fb888ec032.ngrok.io/" +"voice","Method": "GET"
};
var options = {
"method" : "post","payload" : payload
};
options.headers = {
"Authorization" : "Basic " + Utilities.base64Encode(TWILIO_ACCOUNT_SID + ":" + TWILIO_AUTH_TOKEN)
};
var response = UrlFetchApp.fetch(call_url,options);
UrlFetchApp.fetch(call_url,options);
return JSON.parse(response);
}
解决方法
这里是 Twilio 开发者布道者。
要接收呼叫状态,您需要在创建呼叫时设置 StatusCallback
URL。该 URL 应指向您控制的 URL,当它收到来自 Twilio 的 HTTP 请求时,该 URL 可以更新您的电子表格。
var payload = {
"To": "+" + String(to),"From" : TWILIO_NUMBER,"Url": "http://a1fb888ec032.ngrok.io/" +"voice","Method": "GET","StatusCallback": "https://SOME_URL"
};
您可以use Google Sheets and App Script to set up a web application接收这样的网络钩子。简而言之,您需要创建具有 doPost
方法(默认情况下 Twilio webhook 是 POST
请求)并返回成功响应的脚本。 Twilio statusCallback webhooks 不希望响应中包含任何内容,因此您可以使用空文本输出。
这样的事情可能会奏效:
function doPost(event) {
var callSid = event.parameter("CallSid");
var status = event.parameter("CallStatus");
// update spreadsheet with call status
return ContentService.createTextOutput('');
}
查看关于 turning scripts into web apps 和 Twilio call status callbacks 的文档了解更多详情。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。