Как исправить «ошибку поиска HTTP 11200» в программируемых SMS-сообщениях Twilio (WhatsApp) - PullRequest
0 голосов
/ 28 января 2019

Я хочу понять, что вызывает ошибку поиска HTTP 11200?Я отправил ответ на POST-запрос DialogFlow, разве он не должен обрабатывать отправку этого ответа Twilio?

Вот что я сделал до сих пор

Я настроиллокальный сервер Python, и выставил localhost с помощью ngrok.Идея состоит в том, чтобы создать погодного бота с помощью Twilio Programmable SMS.Первоначальное сообщение Twilio пересылается DialogFlow, который затем отправляет запрос post на мой сервер python.Затем я обрабатываю этот запрос и получаю соответствующую информацию о погоде из API OpenWeatherMap.Будучи относительно новым для сервера dev, я полагаю, что мне нужно затем отправить ответ с правильной структурой, как указано в рекомендациях DialogFlow (например, с помощью параметра executementText), обратно в DialogFlow, который затем должен отправить ответ Twilio, который должен показатьна моей песочнице WhatsApp Twilio.** Но то, что я получаю, это ошибка с ошибкой получения HTTP 11200 в отладчике Twilio, я хотел понять, правильно ли я отправляю данные в DialogFlow и что приводит к этой ошибке ** Я прочитал документацию об ошибке на Twilio'sвеб-сайт, но это не помогло мне понять проблему в моем случае.

Я пробовал ту же программу, используя сервер PHP, и она отлично работала.Я просто хотел воссоздать программу, используя сервер Python, так как в настоящее время мне удобнее ее использовать.

// DO post метод 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"))

infoпеременная возвращается следующим образом из 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 -

PHP Код Webhook из сообщения в блоге, который работает правильно

/* Часть кода, которая отправляет ответ с данными о погоде в Dialogflow * /

function sendFulfillmentResponse($temperature, $weatherDescription)
{
   $response = "It is $temperature degrees with $weatherDescription";

   $fulfillment = array(
       "fulfillmentText" => $response
   );

   echo(json_encode($fulfillment));
}

Я ожидаю увидеть ответ от учетной записи Twilio Sandbox в WhatsApp, аналогично тому, как я создал сервер с помощью PHP.Вместо этого я получаю сообщение об ошибке 11200 в Twilio Debugger, но никаких ошибок в серверном терминале.

...