Python “如何修复”;11200 HTTP检索失败错误“;嵌入式可编程SMS(WhatsApp)
我想了解是什么导致11200 HTTP检索错误?我已经将POST请求的响应发送到DialogFlow,它不应该处理将此响应发送到Twilio吗 这是我到现在为止所做的 我已经设置了一个本地python服务器,并使用ngrok公开了本地主机。其想法是使用Twilio可编程短信创建一个天气机器人。发送到Twilio的初始消息被转发到DialogFlow,然后DialogFlow向我的python服务器发送post请求。然后我处理这个请求,并从OpenWeatherMapAPI获取相关的天气信息。作为服务器开发人员的新手,我假设接下来需要将具有DialogFlow指南中提到的正确结构的响应(例如,包含fulfillmentText参数)发送回DialogFlow,DialogFlow随后应将响应发送到Twilio,并应显示在我的WhatsApp Twilio沙箱中。 **但我得到的是Twilio Degugger中的11200 HTTP检索失败错误,我想了解我是否正确地将数据发送到DialogFlow,以及导致此错误的原因**我阅读了Twilio网站上的错误文档,但这对我理解本例中的问题没有多大帮助 我曾使用PHP服务器尝试过相同的程序,效果非常好。我只是想用Python服务器重新创建这个程序,因为我现在更习惯于使用它 //webhook.py的DO post方法Python “如何修复”;11200 HTTP检索失败错误“;嵌入式可编程SMS(WhatsApp),python,http,webserver,twilio,dialogflow-es,Python,Http,Webserver,Twilio,Dialogflow Es,我想了解是什么导致11200 HTTP检索错误?我已经将POST请求的响应发送到DialogFlow,它不应该处理将此响应发送到Twilio吗 这是我到现在为止所做的 我已经设置了一个本地python服务器,并使用ngrok公开了本地主机。其想法是使用Twilio可编程短信创建一个天气机器人。发送到Twilio的初始消息被转发到DialogFlow,然后DialogFlow向我的python服务器发送post请求。然后我处理这个请求,并从OpenWeatherMapAPI获取相关的天气信息。作为
def do_POST(self):
try:
content_len = int(self.headers.get('Content-Length'))
post_body = self.rfile.read(content_len)
requestjson = json.loads(post_body)
city = requestjson["queryResult"]["parameters"]["geo-city"]
if city:
print(city)
info = getWeatherInformation(city)
print(info) # Prints temp in city and weather condition successfully
self.send_response(200)
self.wfile.write(info.encode(encoding = "utf_8"))
info变量以以下方式从getWeatherInformation返回
墨尔本市的控制台调试语句
一篇博客文章中的PHP Webhook代码可以正常工作
/
*向Dialogflow发送天气数据响应的代码的一部分
*/
我希望在WhatsApp上看到Twilio沙箱帐户的响应,类似于我使用PHP创建服务器时的响应。相反,我在Twilio调试器中得到了11200错误,但在服务器终端中没有错误。中有关于该错误的更多信息吗?您应该能够看到Dialogflow服务器返回给Twilio的响应以及它的问题所在。@philnash调试消息刚读到“坏请求”,但后来我通过Webhook URL查看了它,得到了两个类别,null和我服务器的面向ngrok公共的uri,公共uri的错误消息是“坏请求”,但是对于null类别(我猜是意料之中的):“urinull的URI模式必须与‘http’、‘https’、‘ws’或‘wss’相等(忽略大小写)。这有助于回答您的查询吗?
null
版本来自当前WhatsApp API不支持的回退URL。那么,深入研究错误的请求错误,你能看到实际的请求和响应吗?是的。请求如下:URL->。参数->正文:“墨尔本天气如何”,SmsStatus:“收到”以及其他ID。消息文本->消息:“错误请求”,源组件:“14100”,错误代码:“11200”,httpResponse:“400”。身体的反应是:空洞的言语。这是否意味着问题在于请求本身@Philnash看起来DialogFlow没有正确响应Twilio请求。DialogFlow中是否有任何日志可以说明这一点?
res = {"fulfillmentText":response}
info = json.dumps(res)
return info
Web Server running on port: 8080
Melbourne
{"fulfillmentText": "It is 31.29 degrees with clear sky"}
127.0.0.1 - - [27/Jan/2019 23:00:34] "POST /webhook.py HTTP/1.1" 200 -
function sendFulfillmentResponse($temperature, $weatherDescription)
{
$response = "It is $temperature degrees with $weatherDescription";
$fulfillment = array(
"fulfillmentText" => $response
);
echo(json_encode($fulfillment));
}