我试图通过 Twilio 基本上循环 Flask 应用程序,以便当用户向 Twilio 号码发送短信时,Twilio 会向用户打招呼,但会等待用户的第二次响应。基本上:
用户向 twilio 号码发送短信 -> twilio 应用程序问候并提示用户进行另一个响应 -> 用户通过再次向 twilio 号码发送短信来输入第二个响应 -> twilio 确认并标记交易已完成
我得到了我想要的前半部分功能:
from flask import Flask, request, redirect
from twilio.twiml.messaging_response import MessagingResponse
app = Flask(__name__)
@app.route("/sms", methods=['GET','POST'])
def sms_logic():
# get the message the user sent our Twilio number
body = request.values.get('Body', None)
# start our TwiML response
resp1 = MessagingResponse()
resp1.message('Hi! Please enter your name')
return(str(resp1))
...但是我如何让它执行工作流程的第二部分?
提前感谢您的帮助!
最佳答案
这里是 Twilio 开发者布道者!
我们建议使用 session 构建这样的对话 - 您可以在此处查看使用 Python 和 Flask 的教程:https://www.twilio.com/docs/sms/tutorials/how-to-create-sms-conversations-python
所以你可以这样做:
from flask import Flask, request, session
from twilio.twiml.messaging_response import MessagingResponse
# The session object makes use of a secret key.
SECRET_KEY = 'a secret key'
app = Flask(__name__)
app.config.from_object(__name__)
@app.route("/sms", methods=['GET', 'POST'])
def sms_logic():
# Increment the counter
counter = session.get('counter', 0)
counter += 1
# Save the new counter value in the session
session['counter'] = counter
resp = MessagingResponse()
if counter == 1:
resp.message('Hi! Please enter your name')
else:
body = request.values.get('Body', 'Friend')
resp.message('Thanks {}!'.format(body))
return str(resp)
if __name__ == "__main__":
app.run(debug=True)
有关更大的示例,请查看有关使用 Python 和 Flask 构建 Employee 目录的教程:https://www.twilio.com/docs/sms/tutorials/employee-directory-python-flask
关于python - 如何在 Python 和 Flask 中使用 Twilio 发送 2 个自定义条件响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51145995/