Flask重定向后的Twilio MessagingResponse()

时间:2019-05-19 02:52:21

标签: python flask twilio

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()不起作用。

1 个答案:

答案 0 :(得分:0)

您的第一个代码片段是如何使用XML或TwiML响应传入的文本消息(一件事)
from twilio.twiml.messaging_response import MessagingResponse

第二个片段是如何通过REST API发送文本消息(另一回事)
from twilio.rest import Client

在您的第一个代码段中,如果您使用空字符串来响应收到的短信,您将不会收到文本回信(Twilio不会做任何事情),例如:

代替

return ""

尝试

return str(resp)

并确保msg不为空。