Ошибка приложения в голосовом вызове Twilio Django / python

Недавно я начал использовать Twilio Voice call для отправки OTP пользователям, использующим Django. Я имею в виду данную ссылку для настройки ответа Twilio. https://www.twilio.com/docs/tutorials/walkthrough/click-to-call/python/flask

views.py

def voice_call(otp, mobile_no):
    client = TwilioRestClient(settings.ACCOUNT_SID, settings.AUTH_TOKEN)
    client.calls.create(from_=settings.OTP_FROM_NUMBER,
                        to=mobile_no,
                        url='http://localhost:8000/outbound/',
                        method='POST')


def outbound(self):
    response = twiml.Response()
    response.say("Thank you for contacting our department",
                 voice='alice')
    return HttpResponse(response, content_type="application/xml")

В urls.py у меня есть / outbound /, который указывает на мой модуль представления django.

Если я нажимаю "/ outbound /" в браузере, он отображает правильный ответ в формате xml, но при голосовом вызове выдает сообщение об ошибке "Извините, ошибка приложения".

Не уверен, где я ошибаюсь при рендеринге xml. Заранее спасибо.


person Shagun    schedule 27.03.2016    source источник


Ответы (1)


Проповедник разработчиков Twilio здесь.

Я думаю, проблема в том, что вы пытаетесь указать Twilio на свой localhost. Когда Twilio подключается к вызову, он пытается отправить HTTP-запрос на URL-адрес, который вы передаете в вызове REST API. Если вы пройдете localhost, Twilio не сможет добраться до него, поскольку это доступно только на вашем компьютере.

Но выход есть! Мы рекомендуем использовать инструмент под названием ngrok. Он позволяет внешним службам подключаться к вашему localhost, чтобы вы могли тестировать подобные веб-перехватчики. Ознакомьтесь с этими сообщениями в блоге о о том, как настроить up ngrok для использования с Twilio и все причины, по которым мне нравится использовать ngrok для разработки с Twilio.

Сообщите мне, если это поможет!

person philnash    schedule 29.03.2016
comment
Спасибо @philnash за предложение. Я был мало занят другими вещами, поэтому не мог ответить раньше. Я пробовал с ngrok и дал разрешения на URL-адрес из моей учетной записи Twilio, но он все еще дает мне ту же ошибку. Я также просмотрел журналы, где отображается эта ошибка сбой при поиске HTTP 11200. Я не уверен, откуда это. Не могли бы вы немного помочь мне, так как я в этом новичок. - person Shagun; 01.04.2016
comment
Вы говорите, что когда вы загружаете XML в браузер, он работает, что является запросом GET. Ваш номер телефона в Twilio установлен на GET или POST? - person philnash; 01.04.2016
comment
Он установлен на POST .. Я только что понял, что это проблема csrf, которая запрещала ему делать запросы к Twilio. Для этого я использовал crsf_exempt. Сейчас он работает. Хотя сейчас я не могу получить доступ к своей переменной сеанса ... но я думаю, что найду способ сделать это. Большое спасибо за ваше время и помощь. - person Shagun; 01.04.2016