然而,在一个终端窗口(python textapi.py
)启动我的烧瓶应用程序后,在另一个终端(ngrok http 5000
)中启动ngrok,将转发的http url复制并粘贴到twilio控制台“一条消息进入“字段,然后发短信,我遗留了404错误。
我的烧瓶终端以及我的ngrok终端都注册了传入的POST,但都响应了404错误。
我的烧瓶应用程序如下所示:
from flask import Flask, request, redirect
import twilio
from twilio.rest import Client
from twilio.twiml.messaging_response import MessagingResponse
import pandas
import os
# Load some background data and credentials
app = Flask(__name__)
# Initiate Twilio Client
client = Client(account_sid, auth_token)
@app.route('/sms', methods=['POST'])
def sms():
number = request.form['From']
message_body = request.form['Body']
# Do stuff to get response_String
response = response_string
resp = twiml.Response()
resp.message(response)
return str(resp)
if __name__ == '__main__':
app.run()
有人可以解释404错误的来源以及无法找到“localhost:5000 / sms”的原因吗?
此外:Flask server returns 404 on localhost:5000 w/ Twilio似乎无法解决我的问题。
更新1:部分问题是我粘贴到Twilio控制台的ngrok网址末尾没有“/ sms”。
现在我遇到错误,twiml没有属性Response。
答案 0 :(得分:0)
Twilio开发者传道者在这里。
您导入的是MessagingResponse
,而不是twiml.Response()
。所以,你的代码应该是:
@app.route('/sms', methods=['POST'])
def sms():
number = request.form['From']
message_body = request.form['Body']
# Do stuff to get response_String
response = response_string
resp = MessagingResponse()
resp.message(response)
return str(resp)
修改强>
只是想道歉,你所指的博客文章是使用版本5的Python库,它确实使用了twiml.Response
。我们已经发布了具有MessagingResponse
模块的版本6。您可能会发现a migration document for upgrading from version 5有用。
答案 1 :(得分:0)
尝试在HTTP请求中的Twilio沙箱中更改URL
http://your-ngrok-url.ngrok.io/sms