我正在玩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)
答案 0 :(得分:0)
Twilio开发者传道者在这里。
您没有在邮件中收到号码和正文,因为您在字符串格式中遗漏了某些内容。您需要使用{}
为数字和正文插入字符串的位置添加占位符。像这样:
reply.message("Thank you! Number: {}. Body: {}".format(inbound_num, message_body))
我不知道为什么你的应用程序会响应400响应。它对我来说是正确的,如果Twilio发送响应,那么它应该正常工作。
答案 1 :(得分:0)
我可以使用以下方法解决http 400错误:
request.form.get('')
而不是:
request.form['']
我认为它与Flask有关,但我真的不确定。我对Flask的了解不够充分。
发送者的手机上的所有内容都正确显示,但我注意到我的测试页不会取代发送者'他们发送的数字或文本正文;只有回复消息。所以它看起来像这样:
谢谢!用户:无消息:无
我也不确定那里的问题是什么。我可能最终会像您建议的那样使用数据库。