Twilio 短信响应

Twilio SMS Repsonse

我正在研究 Python 和 Twilio,尝试设置对 SMS 的自动回复。当我发送文本但 none 其他详细信息时,响应会通过。我的测试服务器也给出了一个 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['']

我假设它与 Flask 有关,但我真的不确定。我对 Flask 的了解还不够多。

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

Thank you! User: None Message: None

我也不确定问题出在哪里。我可能最终会像您建议的那样使用数据库做一些事情。