Twilio python flask 尝试获取状态回调事件,但它 returns "none"
Twilio python flask try to get status call back event but it returns "none"
我是 twilio python 和 Flask 的新手。我尝试按照 twilio 示例跟踪短信状态,但正如我提到的那样,我得到 none
作为此语句 status=request.values.get('callstatus', None)
.
的 return
我想跟踪通话进度状态并查看其不同状态。我遵循所有文档,但我被阻止了。感谢您的帮助。
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)
我知道这是一个相对较旧的 post 并且您现在可能已经找到了解决方案,但我仍然 post 正在回答我的问题,以便其他用户受益谁将来可能会遇到同样的问题。
我在上面的代码 post 中看到了 2 个问题:
- 函数 voice() 内部
当您使用 API twilioClient.calls.create() 向 twilio 服务器发出请求时,您正在为 status_callback_event 参数提供单个字符串。
您必须传递一个字符串列表,而不是传递单个字符串,例如:
['initiated'、'answered'、'ringing'、'completed']
- outbound()函数内部
twilio 发送给回调的参数url是CallStatus 而不是callstatus。它们区分大小写。
状态=request.values.get('CallStatus',None)
您可以参考this link查看所有通话资源
我是 twilio python 和 Flask 的新手。我尝试按照 twilio 示例跟踪短信状态,但正如我提到的那样,我得到 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)
我知道这是一个相对较旧的 post 并且您现在可能已经找到了解决方案,但我仍然 post 正在回答我的问题,以便其他用户受益谁将来可能会遇到同样的问题。
我在上面的代码 post 中看到了 2 个问题:
- 函数 voice() 内部
当您使用 API twilioClient.calls.create() 向 twilio 服务器发出请求时,您正在为 status_callback_event 参数提供单个字符串。
您必须传递一个字符串列表,而不是传递单个字符串,例如: ['initiated'、'answered'、'ringing'、'completed']
- outbound()函数内部
twilio 发送给回调的参数url是CallStatus 而不是callstatus。它们区分大小写。
状态=request.values.get('CallStatus',None)
您可以参考this link查看所有通话资源