我想了解是什么引起了11200 HTTP检索错误?我已经将对POST请求的响应发送给了DialogFlow,这不是在处理将响应发送给Twilio吗?
我已经设置了本地python服务器,并使用ngrok公开了本地主机。这个想法是使用Twilio可编程SMS创建一个天气机器人。发送给Twilio的初始消息将转发到DialogFlow,然后DialogFlow将发布请求发送到我的python服务器。然后,我处理此请求,并从OpenWeatherMap API获取相关的天气信息。对于服务器开发人员来说相对较新,我假设我需要按照DialogFlow指南中提到的正确结构发送响应(例如,应包含complementText参数),然后再将其发送回DialogFlow,然后将响应发送给Twilio,并显示在我的WhatsApp Twilio沙盒上。 **但是我得到的是Twilio Degugger中的11200 HTTP检索失败错误,我想了解是否将数据正确发送到DialogFlow以及引起此错误的原因**我阅读了有关Twilio的错误的文档网站,但这并不能帮助我理解我所遇到的问题。
我曾经使用PHP服务器尝试过相同的程序,并且运行良好。我只是想使用Python服务器重新创建该程序,因为我暂时更喜欢使用它。
//做webhook.py的发布方法
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"))
从getWeatherInformation中以以下方式返回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 -
/ *将天气数据响应发送到Dialogflow的部分代码 * /
function sendFulfillmentResponse($temperature, $weatherDescription)
{
$response = "It is $temperature degrees with $weatherDescription";
$fulfillment = array(
"fulfillmentText" => $response
);
echo(json_encode($fulfillment));
}
我希望看到WhatsApp上Twilio Sandbox帐户的响应,类似于我使用PHP创建服务器时的响应。取而代之的是,我在Twilio调试器中收到了11200错误,但在服务器终端中没有错误。