Возврат ответа перед перенаправлением на последующее событие - PullRequest
0 голосов
/ 30 ноября 2018

В моем случае я хотел бы предложить пользователю вариант напоминания.Итак, ...

  • Агент: «Хотите, чтобы я вам напомнил?»
  • Пользователь: «Да»
  • Агент: «Через сколько минут? "
  • Пользователь:" 10 "
  • Агент:" Отлично, я настроил ваше напоминание. "
  • [10 минут прошло]
  • Агент: "Дин дон! Время истекло."

Я задаю remind_time и отвечаю этим ответом на подтверждение, но у меня не получается понять, как вызвать функцию для проверки времени, которая не будетнамерение, инициируемое пользователем.

Я пытался использовать conv.followup (), но я получил из документа AoG то, что один ответ будет отправлен обратно на запрос И сделан только после того, как указанное последующее событие имеетбыл казнен.Таким образом, это невозможно для выполнения намерения:

  1. Установить значение remind_time
  2. Ответить с подтверждением
  3. Время ожидания для remind_time
  4. Ответить с помощьюalert

В конце этой ветки обсуждается обходной путь, но он мне мало помог.

Любое понимание, но особенно пример кодабыло бы чрезвычайно полезно.Спасибо.

1 Ответ

0 голосов
/ 30 ноября 2018

То, что вы пытаетесь сделать, таким образом невозможно.

Интенции запускаются только в зависимости от действий пользователя - обычно так, как они говорят.conv.followup() используется в довольно редких случаях - для запуска другого Намерения, которое фактически заменит текущую обрабатываемую.

Звучит так, как будто вам больше нужно push-уведомление .Однако это имеет некоторые ограничения, в частности, в настоящее время вы можете отправлять уведомления только на мобильные устройства, а не на интеллектуальные колонки.

Хотя есть и другие варианты, они, вероятно, еще менее желательны (по крайней мере для вашегопользователи).

Вы не можете просто вызвать другое событие в соответствующее время.Именно это и делает метод уведомлений.

Имейте в виду, что ваш webhook должен вернуть ответ в течение примерно 5 секунд, и после этого все последующие ответы игнорируются.Одним из способов решения этой проблемы является отправка Media Response для воспроизведения некоторого звука (даже тихого звука) в течение некоторого периода времени.Когда Медиа заканчивается, он автоматически запускает событие для вашего Действия.Это позволяет проверить, достигнуто ли время будильника, и, если нет, отправить еще один медиа-ответ.

Этот последний момент, однако, имеет ряд недостатков.Ваши пользователи могут легко прервать воспроизведение мультимедиа и отменить его - в этом случае вы никогда не получите повторный запрос.Ваши пользователи также не могут использовать помощника для чего-либо еще.

...