使用Python设置状态回调URL

2024-09-29 19:21:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用Python-Flask在Twilio中测试StatusCallback,但是,我没有得到任何结果,也不确定我遗漏了什么。我也在使用ngrok

代码如下:

from flask import Flask, request, abort
import logging

logging.basicConfig(level=logging.INFO)
app = Flask(__name__)

@app.route('/webhook', methods =['POST', 'GET'])
def webhook():
    status=request.values.get(['CallSid', 'From', 'To', 'Direction'])
    logging.info('Status: {}'.format(status))
    return ('', 204)

if __name__ == '__main__':
    app.run(debug=True)

当我打电话时,从我附上的图片中,你会注意到我没有得到任何结果。你能告诉我我可能遗漏了什么吗?谢谢

attachment


Tags: 代码namefromimportappflaskrequestlogging
1条回答
网友
1楼 · 发布于 2024-09-29 19:21:21

这里是Twilio开发者福音传道者

使用ngrok创建隧道时,会设置一个类似https://RANDOMSUBDOMAIN.ngrok.io的URL,请确保使用整个URL,包括子域

当ngrok运行时,您还可以检查仪表板,以确保对ngrok URL发出请求。您可以在http://localhost:4040访问此仪表板。您还可以使用它来检查正在发送的请求参数

最后,您可能在request.values.get和传递密钥数组时遇到问题。^{} method of ^{}只接受一个键,不接受数组

正如您在注释中指出的,您可以使用request.form.to_dict(flat=False)来获取参数字典。如果要在一行中将其进一步分解为单独的变量,可以使用^{} from the operator module,如下所示:

from operator import itemgetter

@app.route('/webhook', methods =['POST', 'GET'])
def webhook():
    parameters=request.form.to_dict(flat=False)
    CallSid, From, To, Direction = itemgetter('CallSid', 'From', 'To', 'Direction')(parameters)
    logging.info('CallSid: {}'.format(CallSid))
    return ('', 204)

相关问题 更多 >

    热门问题