2013-01-03 3 views
0

twilio를 사용하여 자동으로 전화를 걸려고 시도하고 있지만 올바르게 작동하려면 문제가 있습니다.http POST에서 응답을 얻을 수 없습니다.

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

내가 테스트로 내 휴대폰으로 전화를받을거야 때문에 코드의이 부분이 작동 확신한다 :이 같은 twilio를 사용하여 전화를 만들고있어. 그러나 전화를 받으면 응용 프로그램 오류가 있음을 알립니다. Twilio 디버그 패널에서, 나는이를 참조하십시오 twilio 내 사이트에서 응답을받지처럼

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

것 같습니다. 이상한 점은 URL (http://166.78.13.45:8000/twilio_calls/19/)로 이동하여 제대로 포맷터 twiml과 비슷한 모양을 얻을 수 있다는 것입니다. 트윌 리오가 왜 그것을 집어 들지 않을지 확신하지 못합니다. 이 페이지를 만드는보기는 다음과 같습니다.

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

이 페이지를 읽으려면 어떤 아이디어가 필요합니까?

+0

디버거의 특정 XML 오류 메시지 란 무엇입니까? –

+0

이 메시지와 함께 문서 구문 분석 오류 (오류 12100)가 나타납니다. 문서의 라인 1 오류 : 파일의 조기 종료. 응답 본문이 유효한 XML 문서인지 확인하십시오. –

+0

이것은 서버가 Twilio로 XML을 반환하고 있지만 형식이 올바르지 않다는 것을 의미합니다. –

답변

0

정말 이상한 일이었고, 여전히 문제가 무엇인지 확신 할 수 없지만 해결책이 있습니다. 내 views.py 파일에 print request 줄을 추가하면이 문제와 다른 영역에서이를 수정하는 것처럼 보였습니다. 나는 여기서 내가 뭔가 잘못하고있는 것을 상상할 수 있습니다. 왜 누군가가이 일이 왜 효과가 있었고, 앞으로 어떻게 피할 수 있는지 이해할 수 있다면 좋을 것입니다.

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 

아니요 몸체.

+0

왜 이런 생각일까요? –

+0

아니요. 그러나 호출 sid를 기반으로 제어 흐름을 분기하는 if/else/return 문에 대한 코드를 확인해야합니다. 또는 전체 코드를 여기에 게시하십시오. –

+0

URLconf :'url (r '^ twilio_calls/(\ d +)/$', 'teachercomapp.views.twilio_call', name = 'twilio_call')의 원래 posts에서 views.py의 메소드를 다시 포맷하기 만하면, –

관련 문제