Twilio SMS Repsonse

时间:2018-04-20 02:18:01

标签: python sms twilio messaging http-status-code-400

我正在玩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)

2 个答案:

答案 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的了解不够充分。

发送者的手机上的所有内容都正确显示,但我注意到我的测试页不会取代发送者'他们发送的数字或文本正文;只有回复消息。所以它看起来像这样:

  

谢谢!用户:无消息:无

我也不确定那里的问题是什么。我可能最终会像您建议的那样使用数据库。