Node.js Twilio совершает звонки, используя REST API - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь позвонить из 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: &lt;?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, я не нашел в документации четко, что я должен установить.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

Евангелист разработчиков Twilio здесь.

В этом случае вам необходимо отправить URL-адрес Twilio.После установления соединения Twilio отправит запрос на этот URL-адрес для получения ответа TwiML.

Из документации :

Когда вы инициируете вызовчерез API REST Twilio делает синхронный HTTP-запрос к URL-адресу, найденному в значении параметра POST 'Url', чтобы получить TwiML для обработки вызова.Этот запрос идентичен запросу, который Twilio отправляет при получении телефонного звонка на один из ваших номеров Twilio.URL-адреса должны содержать действительное имя хоста (подчеркивания недопустимы).

Итак, ваш formData здесь должен быть:

formData: {
  To: '+919200070974',
  From: '14245060471',
  Url: 'https://example.com/twiml'
}

И URL на https://example.com/twiml должен ответитьс TwiML, который вы определили изначально.

0 голосов
/ 25 апреля 2018

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));
...