【发布时间】:2021-10-10 07:02:34
【问题描述】:
我正在尝试构建此预约管理系统,用于使用 Twilio+ Airtable + Postman 安排疫苗接种预约。 ( [链接到下面的博客])2
为了通过 Rest API 触发 Twilio 工作室流程并从我的 Twilio 号码获取我的个人号码上的可编程消息,我通过提供包含真实 flow_sid 和其他详细信息的流程 URL 来发出此 POST 请求,但每次发布请求时都会遇到以下错误:
Twilio 错误日志:
- (错误:11200)HTTP 检索失败尝试检索此 URL 的内容时失败。
邮递员测试结果:
- 响应时间小于1000ms | AssertionError: 预计 2315 低于 1000
工作室流程在第一个实例中调用的函数是:
const airtable = require("airtable");
exports.handler = function (context, event, callback) {
const base = new airtable({apiKey: context.AIRTABLE_API_KEY}).base(context.AIRTABLE_BASE_ID);
const client = context.getTwilioClient();
let paramsMap = new Map();
base("appointments")
.select()
.all()
.then((records) => {
const sendingMessages = records.map((record) => {
if (record.get('Appointment_Status') === "pending"){
paramsMap['name'] = record.get('Name');
paramsMap['appointment_date'] = record.get('Date');
paramsMap['appointment_time'] = record.get('Appointment_Time');
paramsMap['airtable_record_id'] = record.getId();
paramsMap['appt_id'] = record.get('ID');
}
});
return Promise.all(sendingMessages);
})
.then(() => {
if (paramsMap['name'] === undefined) //No appointments in system
{
console.log("No appointments in system");
callback(null, "From studio function");
}
params_list = {
"appointment_date": paramsMap['appointment_date'],
"appointment_time": paramsMap['appointment_time'],
"provider_name":"Owl Health",
"patient_name": paramsMap['name'],
"airtable_record_id": paramsMap['airtable_record_id'],
"appt_id": paramsMap['appt_id']
};
client.studio.v1.flows('Vaccine-Reminder').executions.create(
{
to: '+91xxxxxxxxxx',
from: '+12xxxxxxxxxx',
parameters: JSON.stringify(params_list)
}
)
.then(function(execution) {
console.log("Execution Id:" + execution.sid);
callback(null, "Message sent via studio function");
})
.catch(err => callback(err));
})
.catch((err) => {
console.log("Airtable error");
callback(err);
});
};
【问题讨论】:
标签: twilio twilio-api postman-testcase