与Twilio Docs中一样,我可以创建一个MessagingResponse()对象,用于将响应文本发送到手机。但是,如果我想首先重定向到内部页面怎么办?我不能像我想要的那样简单地在重定向函数中创建MessagingResponse():
@app.route("/news", methods=['GET', 'POST'])
def news():
....
resp = MessagingResponse()
resp.message(msg)
return ""
@app.route("/", methods=['GET', 'POST'])
def hello():
return redirect("news")
如果使用上面的代码,我不会收到文本。但是,如果我从twilio.rest手动创建客户端,如下所示:
@app.route("/news", methods=['GET', 'POST'])
def news():
....
client = Client(account_sid, auth_token)
message = client.messages.create(to=request.values.get("From"), from_=request.values.get("To"),
body=msg)
我成功完成了自己想做的事情。我不明白当请求对象相同时,为什么MessagingResponse()不起作用。
答案 0 :(得分:0)
您的第一个代码片段是如何使用XML或TwiML响应传入的文本消息(一件事)
from twilio.twiml.messaging_response import MessagingResponse
第二个片段是如何通过REST API发送文本消息(另一回事)
from twilio.rest import Client
在您的第一个代码段中,如果您使用空字符串来响应收到的短信,您将不会收到文本回信(Twilio不会做任何事情),例如:
代替
return ""
尝试
return str(resp)
并确保msg
不为空。