2016-03-27 11 views
2

Djangoを使用しているユーザーにOTPを送信するために最近Twilio Voiceコールを使用し始めました。 Twilioレスポンスをカスタマイズするためのリンクを参照しています。 urls.pyで https://www.twilio.com/docs/tutorials/walkthrough/click-to-call/python/flaskTwilio音声コールのアプリケーションエラーDjango/python

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") 

、私は私のDjangoのビューモジュールを指す/アウトバウンド/を持っています。私は、ブラウザで「/アウトバウンド/」ヒットした場合

それは正しいXML応答 をレンダリングするが、音声通話では、それは私がつもりどこ「申し訳ありませんが、アプリケーションエラー」

わからないと言って、エラーメッセージが表示されますXMLをレンダリングする際に間違っています。 ありがとうございます。

答えて

1

ここではTwilioの開発者エバンジェリストです。

Twilioをlocalhostに向けようとしていることが問題だと思います。 Twilioが呼び出しを接続すると、REST API呼び出しで渡したURLへのHTTP要求を試みます。 localhostに合格した場合、あなたのマシンでのみ利用可能なので、Twilioはそれに到達することができません。

解決策があります。 ngrokというツールを使用することをおすすめします。外部サービスをlocalhostにトンネリングできるので、このようなウェブフックをテストできます。これらのブログ記事はhow to set up ngrok for use with Twilioall the reasons I like using ngrok for developing with Twilioでチェックしてください。

これが役立つかどうか教えてください。

+0

提案のために@philnashに感謝します。私は他のものでほとんど占有されていなかったので、私は早く応答できませんでした。 私はngrokを試してみましたが、TwilioアカウントからURLにアクセス許可を与えましたが、それでも私には同じエラーが表示されています。 また、このエラーが表示されているログを調べました ** 11200 HTTP取得に失敗しました** どこから来たのかわかりません。私はちょっとあなたを案内してくれますか?私はこれについて完全に初心者です。 – Shagun

+0

ブラウザでXMLを読み込むと、それは動作しますが、それはGET要求です。 Twilioの電話番号はGETまたはPOSTに設定されていますか? – philnash

+0

これはPOSTに設定されています。私はそれがTwilioに要求を出すことを禁じていたcsrfの問題であることに気付きました。 私はcrsf_exemptを使っています。それは今働いている。 私は今セッション変数にアクセスすることができませんが、私はそれを行う方法を見つけ出すと思います。 お時間をいただきありがとうございます。 – Shagun

関連する問題