【问题标题】:Application Error in Twilio voice call Django/pythonTwilio 语音呼叫 Django/python 中的应用程序错误
【发布时间】:2016-03-27 13:54:10
【问题描述】:

我最近开始使用 Twilio Voice call 向使用 Django 的用户发送 OTP。 我指的是给定的链接来自定义 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 响应 但在语音通话中,它会给出一条错误消息,说 'Sorry application error'

不确定我在渲染 xml 时哪里出错了。 提前致谢。

【问题讨论】:

    标签: python django twilio twilio-click-to-call


    【解决方案1】:

    这里是 Twilio 开发者宣传员。

    我认为问题在于您试图将 Twilio 指向您的 localhost。当 Twilio 连接调用时,它将尝试向您在 REST API 调用中传递的 URL 发出 HTTP 请求。如果您通过 localhost,则 Twilio 将无法访问它,因为它仅在您的计算机上可用。

    有一个解决方案!我们建议使用名为ngrok 的工具。它允许外部服务通过隧道连接到您的localhost,以便您可以像这样测试 webhook。在how to set up ngrok for use with Twilioall the reasons I like using ngrok for developing with Twilio 上查看这些博文。

    如果有帮助,请告诉我!

    【讨论】:

    • 感谢@philnash 的建议。我很少忙于其他事情,所以我不能更早地做出回应。我尝试使用 ngrok 并从我的 Twilio 帐户授予对 URL 的权限,但它仍然给我同样的错误。我还查看了显示此错误的日志 11200 HTTP 检索失败 我不确定它来自哪里。你能指导我一点吗,因为我在这方面完全是新手。
    • 您说当您在浏览器中加载 XML 时它可以工作,这是一个 GET 请求。您在 Twilio 中的电话号码设置为 GET 还是 POST?
    • 它设置为 POST.. 我刚刚意识到这是一个 csrf 问题,它禁止它向 Twilio 发出请求。我为此使用了 crsf_exempt 。它现在正在工作。虽然我现在无法访问我的会话变量..但我想我会想办法做到这一点。非常感谢您的时间和帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多