使用Twilio函数发起外呼时遇500错误:Url参数缺失
Twilio外呼函数报错:Url参数必填问题
我的代码:
exports.handler = function(context, event, callback) { const twilioClient = context.getTwilioClient(); const to = event.to; const from = event.from; twilioClient.calls .create({ twiml: '<Response><Say>Ahoy, World!</Say></Response>', from: from, to: to, machineDetection: 'Enable', }) .then((result) => { console.log('Call successfully placed'); console.log(result.sid); return callback(null, 'success'); }) .catch((error) => { console.log(error); return callback(error); }); };
收到的错误:
{ "status_code": 500, "content_type": "text/plain", "body": "Error: Url parameter is required." }
疑问:
如果已经传入twiml参数,是否仍需要传入url参数?
解答:
不需要同时传入url参数,twiml和url是二选一的关系,只要提供其中一个即可。你遇到报错的原因是twiml参数的内容格式错误:你使用了HTML实体编码的<和>,但Twilio Node.js SDK要求直接传入原始的XML字符串,不需要转义。
修正后的代码:
exports.handler = function(context, event, callback) { const twilioClient = context.getTwilioClient(); const to = event.to; const from = event.from; twilioClient.calls .create({ twiml: '<Response><Say>Ahoy, World!</Say></Response>', from: from, to: to, machineDetection: 'Enable', }) .then((result) => { console.log('Call successfully placed'); console.log(result.sid); return callback(null, 'success'); }) .catch((error) => { console.log(error); return callback(error); }); };
把twiml的值改成未转义的XML字符串后,SDK就能正确识别这个参数,不再要求你传入url参数。
内容的提问来源于stack exchange,提问作者jack
相关产品推荐
相关产品推荐

