【发布时间】:2021-04-01 17:06:07
【问题描述】:
我有一个 twilio Javascript 函数,在有人拨打相关的工作室流程电话后立即在我的工作室流程中执行 #。这个函数应该检查当前是否有正在进行的电话会议并返回“True”或“False”,这样我就可以在 if/else 小部件中使用该字符串来连接呼叫者或发起新的会议.
// This is your new function. To start, set the name and path on the left.
exports.handler = function(context, event, callback) {
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.open("GET", "https://api.twilio.com/2010-04-01/Accounts/myAccountSid/Conferences.json?FriendlyName=mySidDocumentName");
xhr.setRequestHeader("Authorization", "Basic myAuthString");
xhr.send();
xhr.addEventListener("readystatechange", function() {
if(this.readyState == 4) {
console.log(JSON.stringify(xhr.responseText));
var jsonResponse = JSON.parse(xhr.responseText);
var arrayLength = Object.keys(jsonResponse.Conferences[jsonResponse]).length;
if (arrayLength > 0) {
var isConferenceOngoing = "True"
} else {
var isConferenceOngoing = "False"
}
}
return callback(null, isConferenceOngoing);
});
};
响应中我感兴趣的“会议”键是一个数组,这会导致问题,因为 Twilio 无法在工作室流程中解析数组,因此必须在函数调用中完成:@ 987654321@ "注意,虽然数组是合法的JSON,但是如果你的请求返回一个对象数组,它是不会被解析的。"
所以我只需要检查会议数组是否为空,如果是,则将“False”返回到我的工作室流程,或者是否有活动会议(即数组长度> 0)然后返回“真的”。返回“True”或“False”将允许我在我的工作室流程中执行 if/else 小部件,以将呼叫者连接到现有会议或开始新的电话会议。
当没有活动的电话会议时,Postman 中的响应如下所示(注意 Conferences 数组为空):
我对 Javascript 的了解几乎为零,但我认为我已经接近了。
【问题讨论】:
标签: javascript twilio