与在Twilio Docs中一样,我可以创建一个MessagingResponse()对象,用于将response文本发送到我的手机。但是,如果我想首先将redirect添加到内部页面怎么办?我无法在重定向的函数中简单地创建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()在请求对象相同时不起作用。

分析解答

您的第一个片段是如何响应传入的短信(一件事),而您的第二个片段是您发送短信的方式(另一件事)。

看看你的第一个片段,如果你用空的string回复收到的短信,你将不会收到一个文本(Twilio不会做任何事情),因此:

代替

return ""

尝试

return str(resp)

并确保msg不为空。