DialogFlow Google Assistant Webhook Response: пустой речевой ответ

У меня возникли проблемы с использованием Fulfillment / Webhook Dialogflow. Я создал намерение, которое принимает параметр в качестве входа (номер контакта). ПИН-код «проверяется» на стороне сервера с помощью вызова Webhook. То есть установлен флажок «Включить вызов веб-перехватчика для этого намерения». При успешной проверке метод возвращает положительное сообщение.

Весь сценарий работает отлично, пока я использую окно «Попробовать» консоли Dialogflow. Но когда я пытаюсь протестировать его в симуляторе Google Assistant Simulator, он отвечает:

Экран со страницы Действия на странице Google> Ответ

Также,

Экран со страницы Действия на странице Google> Ошибки проверки

Вот цель:

Экран намерений со страницы агента DialogFlow

Я установил ответ на вызов Webhook:

"messages": [
  {
    "speech": "Thanks. Your pin has been confirmed.",
    "type": 0
  }

Образец ответа найден здесь: https://dialogflow.com/docs/fulfillment

Обратите внимание: я уже проверял Ошибка пустого речевого ответа. Это не помогло.


person Abdullah    schedule 28.02.2018    source источник


Ответы (1)


Это хороший вопрос, и документация выглядит немного неясной относительно правильных ответов.

При ответе сообщением для Google Ассистента вы должны использовать параметры speech и displayText для ответа. Таким образом, эквивалентный ответ будет примерно таким:

{
  "speech": "Thanks. Your pin has been confirmed.",
  "displayText": "Thank you. We have confirmed your PIN and you can proceed."
}

Однако, если вы собираетесь выполнять дополнительную работу с функциями Actions on Google (карточки, запросы функций и т. Д.) Или даже просто поддерживать диалог во время разговора с пользователем, тогда вам также потребуется использовать объект data.google и возможно, включите simpleResponse как часть ответа. Это может выглядеть примерно так:

{
  "speech": "Thanks. Your pin has been confirmed.",
  "displayText": "Thank you. We have confirmed your PIN and you can proceed.",
  "data": {
    "google": {
      "expectUserResponse": true,
      "richResponse": {
        "items": [
          {
            "simpleResponse": {
              "textToSpeech": "Thanks. Your pin has been confirmed.",
              "displayText": "Thank you. We have confirmed your PIN and you can proceed."
            }
          }
        ]
      }
    }
  }
}
person Prisoner    schedule 28.02.2018
comment
Идеально. Это сработало. Удивлен, что этих деталей нет в их официальной документации. Мне все еще может потребоваться настроить и немного поработать над ответом для моей цели. Я попытался отредактировать ваш ответ, потому что в ответе json перед объектом data.google отсутствует запятая, но длина редактирования должна быть не менее 6 символов. - person Abdullah; 01.03.2018
comment
К вашему сведению, Google обновил свою справочную страницу и включил подробную информацию: dialogflow.com/docs/fulfillment - person Abdullah; 20.03.2018