我正在尝试从Twilio Rest API打来电话,但我遇到了一个错误,看起来我错过了一些东西,任何帮助都会欣赏:
var options = { method: 'POST',
url: 'https://xxxxxxxxxxxx@api.twilio.com/2010-04-01/Accounts/xxxxxxxxxxx/Calls',
headers:
{
'Cache-Control': 'no-cache',
'content-type': 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' },
formData:
{ To: '+919200070974',
From: '14245060471',
Url: '<?xml version="1.0" encoding="UTF-8"?>n<Response>n <Say voice="woman">This is me....</Say>n</Response>'} };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
现在我设置了URL参数,但显示无效
<?xml version='1.0' encoding='UTF-8'?>
<TwilioResponse>
<RestException>
<Code>21205</Code>
<Message>Url is not a valid url: <?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say voice="woman">This is me....</Say>
</Response></Message>
<MoreInfo>https://www.twilio.com/docs/errors/21205</MoreInfo>
<Status>400</Status>
</RestException>
</TwilioResponse>
我没有到达必须设置URL参数的位置,我在文档中没有清楚地找到我必须设置的内容。
twilio开发人员在这里。
在这种情况下,您需要做的是发送到Twilio a URL。当呼叫连接时,Twilio将向该URL提出请求以获取Twiml响应。
来自文档:
当您通过REST API启动呼叫时,Twilio向在" URL"邮政参数值中找到的URL提出同步HTTP请求,以便检索处理呼叫的twiml。此请求与Twilio发送给您的Twilio号码之一时的请求与Twilio发送的请求相同。URL必须包含有效的主机名(不允许下划线(。
所以,您的formData
应该是:
formData: {
To: '+919200070974',
From: '14245060471',
Url: 'https://example.com/twiml'
}
和https://example.com/twiml
的URL应以您最初定义的twiml响应。
twilio已经有一个npm库。
您可以关注他们的节点。JS指南
// Twilio Credentials
const accountSid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
const authToken = 'your_auth_token';
// require the Twilio module and create a REST client
const client = require('twilio')(accountSid, authToken);
client.messages
.create({
to: '+15558675310',
from: '+15017122661',
body: 'This is the ship that made the Kessel Run in fourteen parsecs?',
})
.then(message => console.log(message.sid));