Как получить доступ к информации, собранной при телефонном звонке Twilio?

#twilio #twilio-api #twilio-twiml

Вопрос:

У меня есть следующий код:

 <?xml version="1.0" encoding="UTF-8"?>
<!-- page located at http://example.com/simple_gather.xml -->
<Response>
  <Pause length="2"/>  <Play>https://welcomehisheart.com/wp-content/uploads/2021/10/congress-invitation.mp3</Play>
  <Pause length="1"/>
    <Say>If you would no longer like to receive information about the Sacred Heart, press 2</Say>
    <Gather/>
  <Pause length="1"/>
</Response>
 

URL-адрес TwiML является:

 https://handler.twilio.com/twiml/EHe23193a659bfcf74b1061864aea9b224
 

Код работает так, как и ожидалось. Вы можете ввести выбор во время телефонного звонка.

Как получить доступ к собранной информации?

Спасибо

Ответ №1:

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

Похоже, что вы работаете с контейнером TwiML, что отлично подходит для статического фрагмента TwiML, подобного этому первому сообщению. Однако есть несколько проблем.

Во-первых, вы не даете пользователю надлежащего времени для ввода своих данных. <Gather> Элемент лучше всего использовать с вложенным в него сообщением, чтобы пользователь мог нажать в любое время. Вы также можете установить a timeout , чтобы лучше контролировать, как долго они должны отвечать после завершения вложенного <Say> . Значение по умолчанию timeout равно 5 секундам.

Во-вторых, если вы просто ждете, пока пользователь нажмет одну цифру, вы можете добавить numDigits="1" атрибут в <Gather> . Это завершится <Gather> , как только пользователь нажмет одну цифру.

Наконец, и предмет вашего вопроса, вам нужно указать <Gather> URL-адрес в качестве action атрибута. Затем, когда пользователь нажимает клавишу, Twilio отправит HTTP-запрос на этот URL-адрес с результатами их ввода. Вам нужно создать приложение, которое будет обрабатывать этот запрос и что-то делать с результатом нажатия клавиши.

Итак, вам следует обновить свой TwiML до:

 <?xml version="1.0" encoding="UTF-8"?>
<!-- page located at http://example.com/simple_gather.xml -->
<Response>
  <Pause length="2"/>
  <Play>https://welcomehisheart.com/wp-content/uploads/2021/10/congress-invitation.mp3</Play>
  <Pause length="1"/>
  <Gather numDigits="1" action="https://example.com/gather">
    <Say>If you would no longer like to receive information about the Sacred Heart, press 2</Say>
  </Gather>
</Response>
 

и вам нужно создать приложение, которое может получать HTTP-запрос , в данном случае по URL example.com/gather -адресу, хотя здесь вы должны указать свой собственный URL-адрес.

Существуют учебные пособия о том, как собирать данные пользователя при телефонном звонке, которые будут более подробно рассмотрены с примерами кода, которые вы должны прочитать далее.

Комментарии:

1. Спасибо за ваш подробный ответ! Очень признателен!

2. Без проблем. Убедитесь, что вы отметили ответ как правильный, если это вам поможет! Спасибо!