0

twilio を使用して自動的にいくつかの通話を発信しようとしていますが、正しく動作させるのに少し問題があります。次のように twilio を使用して電話をかけています。

conn.calls.create(
    to = event.student.phone_number,
    from_ = event.message.teacher.twilio_number,
    url = '%stwilio_calls/%d/' % (BASE_URL, event.id))

テストとしてセルへの呼び出しを受信して​​いるので、コードのこの部分が機能していることはかなり確信しています。ただし、電話を受けると、アプリケーションエラーがあることがわかります。Twilio デバッグ パネルに、次のように表示されます。

http://i.stack.imgur.com/O3oJZ.png

twilio が私のサイトから応答を得ていないようです。奇妙なことに、URL ( http://166.78.13.45:8000/twilio_calls/19/) に移動すると、適切にフォーマッタ化された twiml のように見えるものを受け取ることができます。twilio がそれを取得できない理由がわかりません。このページを作成するビューは次のようになります。

@csrf_exempt
def twilio_call(request, event_id):
    event = Event.objects.get(pk=event_id)

    t = template.Template(event.message.text)
    c = template.Context({'student': event.student})
    call_text = t.render(c)

    # TODO if student not found ?
    # TODO if student.objects.call_notification_ind if false?

    r = twiml.Response()
    r.say(call_text)

    return HttpResponse(str(r))

twilio にこのページを読ませるにはどうすればよいですか?

4

2 に答える 2

2

URL をテストすると、POST 本文にデータを入れると、応答本文が空になるようです。

$ curl -iXPOST http://166.78.13.45:8000/twilio_calls/19/
HTTP/1.1 200 OK
Server: nginx/1.2.6
Date: Fri, 04 Jan 2013 00:20:45 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive

<?xml version="1.0" encoding="UTF-8"?><Response><Say>Hi Dan,

This is a very long test message for you to try out.  Let's see what you think of it.  Give it a shot!!!

Call me back if you have any questions</Say></Response>

ただし、CallSid パラメータをリクエストに追加します。

$ curl -iXPOST http://166.78.13.45:8000/twilio_calls/19/ -d 'foo'
HTTP/1.1 200 OK
Server: nginx/1.2.6
Date: Fri, 04 Jan 2013 00:20:58 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive

体なしで。

于 2013-01-04T00:22:33.640 に答える
0

これは本当に奇妙で、何が問題の原因なのかはまだわかりませんが、解決策はあります。print request私のviews.pyファイルに行を追加すると、これと私がこれを使用している別の領域の両方で修正されたようです。ここで何か間違ったことをしているとしか想像できません。なぜこれが機能したのか、将来それを回避する方法を誰かが理解するのを手伝ってくれたらうれしいです。

于 2013-01-28T23:16:26.297 に答える