Выполнение Google Action не работает в симуляторе - PullRequest
0 голосов
/ 12 мая 2019

У меня настроено действие в Dialogflow с использованием webhook, указывающего на локальный сервер с использованием туннеля ngrok. При использовании функции «Проверить сейчас» в Dialogflow веб-крючок работает, запрос отправляется веб-крюку, а ответ принимается, но при тестировании в симуляторе появляется сообщение «Действие не отвечает прямо сейчас». В журналах ngrok я вижу, что запрос к конечной точке выполняется так же, как и при использовании «Test now». В журналах симулятора отображается сообщение «MalformedResponse: не удалось проанализировать ответ Dialogflow в AppResponse».

Вот ответ выполнения, как видно из диагностической информации Dialogflow:

{
  "payload": {
    "google": {
      "expectUserResponse": false,
      "richResponse": {
        "items": {
          "simpleResponse": {
            "textToSpeech": "test",
            "displayText": "test"
          }
        }
      }
    }
  }
}

1 Ответ

1 голос
/ 12 мая 2019

Нашел решение в этом комментарии https://stackoverflow.com/a/55238042/2197296, Получается, что элемент simpleResponse внутри массива items должен быть упакован в другой массив, например:

"webhookPayload": {
  "google": {
     "richResponse": {
     "items": [
        {
          "simpleResponse": {
            "displayText": "test",
            "textToSpeech": "test"
          }
        }
      ]
    },
    "expectUserResponse": false
  }
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...