вызвать намерения по имени события в V2 с followupEventInput - PullRequest
0 голосов
/ 24 апреля 2018

Я пытаюсь перенести приложение V1 на новый API V2, и у меня возникают проблемы с функцией followupEvent.

Это мой пример использования:

  • Пользователь хочет переключитьсяна свет в определенной комнате -> у меня есть намерение "light_on" с параметром "зона".
  • Если имя не соответствует известной комнате, ответ webhook содержит followupEvent для вызова намерения"unknown_zone".
  • Это намерение сообщить пользователю: "Извините, я не знаю именованную зону '# unknown_zone.zone'. Можете ли вы повторить название зоны?".Затем у пользователя есть 3 попытки дать правильное имя.

Для этого в V1 мой ответ веб-крюка был:

{
      "contextOut":[{
          "name":"zone",
          "lifespan":3
       }],
      "followupEvent":{
          "name":"unknown_zone",
          "data":{
              "context_lifespan":"3",
              "current_action":"light_on",
              "zone":"garage"
            }
        }
    }

В V2 я пытался отправитьследующий ответ:

{
  "outputContexts": [{
    "name": "zone",
    "lifespanCount": 3
  }],
  "followupEventInput": {
    "name": "unknown_zone",
    "parameters": {
      "zone": "garage",
      "current_action": "light_on",
      "context_lifespan": "3"
    },
    "languageCode":"en-US"
  }
}

Намерение "unknown_zone" никогда не вызывается.Я только получаю ответ по умолчанию о своем намерении "light_on".

Я искал в документации: WebhookResponse , EventInput , но ничего не помогло мне.Я также нашел эту тему v2-followupevent-from-webhook-upgrade-from-v1 , но безуспешно.

Может кто-нибудь мне помочь?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Я только что понял, почему мой ответ не сработал. Я не использовал новый формат V2 для имени выходного контекста.

Формат: проекты / {Идентификатор проекта} / агент / сеансы / {Идентификатор сеанса} / contexts / {my_context_name}

Намерение никогда не совпадало, поскольку контекст не был установлен правильно.

0 голосов
/ 24 апреля 2018

Свойство name в объекте followupEventInput ссылается на событие, определенное в намерении, а не на само намерение.Вы должны добавить событие «unknown_zone» в раздел событий вашего намерения, как показано на этом снимке экрана .

...