Twilio python尝试获取状态回调事件,但返回;无”;

Twilio python尝试获取状态回调事件,但返回;无”;,python,flask,twilio,status,Python,Flask,Twilio,Status,我不熟悉twilio python和flask。我尝试按照twilio示例跟踪sms状态,但正如我提到的,我得到none作为此语句的返回status=request.values.get('callstatus',none) 我想跟踪通话进度状态并查看其不同的状态。我遵循所有文档,但我被阻止了。谢谢你的帮助 from flask import Flask,request from twilio.rest import Client from twilio.twiml.voice

我不熟悉twilio python和flask。我尝试按照twilio示例跟踪sms状态,但正如我提到的,我得到
none
作为此语句的返回
status=request.values.get('callstatus',none)

我想跟踪通话进度状态并查看其不同的状态。我遵循所有文档,但我被阻止了。谢谢你的帮助

   from flask import Flask,request
   from twilio.rest import Client
   from twilio.twiml.voice_response import Dial, VoiceResponse
   from pprint import pprint
   import logging
   logging.basicConfig(level=logging.INFO)
   app = Flask(__name__)

   twilioClient = Client('*******************', '*****************************')
   @app.route("/voice")
   def voice():

   call=twilioClient.calls.create(
                    method='GET',
                    status_callback='http://*****.ngrok.io/response',
                    status_callback_event='initiated ringing answered completed',
                    status_callback_method='POST',
                    from_='+**********',
                    to='+*********',
                    url='http://demo.twilio.com/docs/voice.xml''

                    )

        return call.sid


   @app.route('/response', methods=['POST'])
   def outbound():
      status=request.values.get('callstatus', None)
      logging.info('Status: {}'.format(status))
      return ('', 204)



    if __name__ == "__main__":
    app.run(debug=true)

我知道这是一篇比较老的帖子,你可能已经找到了解决方案,但我仍然在发布我的答案,以便将来可能会遇到同样问题的其他用户受益

在上面发布的代码中,我可以看到两个问题:

  • 在函数voice()中
  • 当您使用API twilioClient.calls.create()向twilio服务器发出请求时,您正在向status_callback_事件参数提供一个字符串

    您不需要传递单个字符串,而需要传递字符串列表,如: [“已启动”、“已应答”、“正在鸣响”、“已完成”]

  • 在函数outbound()中
  • twilio发送到回调url的参数是CallStatus,而不是CallStatus。它们区分大小写

    status=request.values.get('CallStatus',None)


    您可以参考查看所有呼叫资源

    是否为本地服务器设置了ngrok代理?是的,我设置了ngrok服务器。我正在使用它拨打电话,并且工作正常。http://******.ngrok.io/voice如果您将
    'GET'
    添加到
    方法列表中会怎么样?我添加了GET,并添加了调用sid,但这是我在终端中得到的。信息:********:127.0.0.1---[31/Oct/2019 14:03:56]“GET/response HTTP/1.1”204-信息:root:SID无状态:无谢谢。