Python Twilio短信服务

Python Twilio短信服务,python,sms,twilio,messaging,http-status-code-400,Python,Sms,Twilio,Messaging,Http Status Code 400,我正在使用Python和Twilio,试图设置对SMS的自动响应。当我发送了一条短信,但没有其他细节时,就会收到回复。我的测试服务器也给出了一个400错误的请求,所以它不理解请求的内容。我可能只是使用了不正确的语法,因为我从不同的示例和文本编译了这段代码。如果有人知道我做的不对,或者知道正确的语法,我将非常感谢您的帮助 from flask import Flask, request from twilio.twiml.messaging_response import * #initiali

我正在使用Python和Twilio,试图设置对SMS的自动响应。当我发送了一条短信,但没有其他细节时,就会收到回复。我的测试服务器也给出了一个400错误的请求,所以它不理解请求的内容。我可能只是使用了不正确的语法,因为我从不同的示例和文本编译了这段代码。如果有人知道我做的不对,或者知道正确的语法,我将非常感谢您的帮助

from flask import Flask, request
from twilio.twiml.messaging_response import *

#initialize Flask application
app = Flask(__name__)

#route for handling request on endpoint
@app.route("/sms", methods=['POST', 'GET'])

def inbound_sms():
    #gets number that text is sent from
    inbound_num = request.form['From']
    #gets message that was sent
    message_body = request.form['Body']

    reply = MessagingResponse()
    #Sends reply with attached details
    reply.message("Thank you!".format(inbound_num, message_body))
    return str(reply)

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

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

您没有收到消息中的数字和正文,因为字符串格式中缺少某些内容。您需要使用
{}
为数字和正文插入字符串的位置添加占位符。像这样:

reply.message("Thank you! Number: {}. Body: {}".format(inbound_num, message_body))

我不知道为什么你的申请会有400条回复。在我看来,它是正确的,如果Twilio正在发送响应,那么它应该可以工作。

我能够通过使用以下命令绕过http 400错误:

request.form.get('')
而不是:

request.form['']
我想这和烧瓶有关,但我真的不确定。我对烧瓶的了解还不够,不能说

发送人的手机上显示的一切都是正确的,但我注意到我的测试页面不会取代发送人的号码或他们发送的正文;只有回复信息。所以看起来是这样的:

谢谢大家!!用户:无消息:无


我也不确定有什么问题。我可能会像你建议的那样使用数据库。

我也不确定,我必须进一步研究。还有一个问题,您如何指定希望返回给发送短信的手机和测试站点的信息?回显消息和发送文本给他们的用户的号码似乎没有用。我宁愿向发送短信的用户发送响应,然后将用户信息(号码、消息正文)分别打印到我的测试站点。为此,我可能会将您在webhook中收到的消息保存到您站点的数据库中,如果您想在站点上显示这些消息,您可以稍后从该数据库中读取这些消息。然后,您可以将任何您想要的响应发送回发件人。