我正在尝试使用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>
我没有得到设置网址参数的位置,我没有在文档中清楚地找到我必须设置的内容。
答案 0 :(得分:1)
twilio已经有一个npm库。
您可以关注他们的Node.js Guide
// 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));
答案 1 :(得分:1)
Twilio开发者传道者在这里。
在这种情况下您需要做的是向Twilio发送一个URL。当呼叫连接时,Twilio将向该URL发出请求以获取TwiML响应。
当您通过REST API发起呼叫时,Twilio会对“&#39; Url&#39;”的值中的URL发出同步HTTP请求。 POST参数,以便检索用于处理调用的TwiML。此请求与Twilio在接收到您的某个Twilio号码的电话时发送的请求相同。 URL必须包含有效的主机名(不允许使用下划线)。
所以,你的formData
应该是:
formData: {
To: '+919200070974',
From: '14245060471',
Url: 'https://example.com/twiml'
}
https://example.com/twiml
处的网址应以您最初定义的TwiML进行回复。