Действие Google Как добавить параметр в пользовательский ответ, отправленный на мой веб-хук

#actions-on-google #actions-builder

Вопрос:

Я работаю с действием Google в консоли действий Google. я могу общаться со своим сервером и получать некоторый ответ с помощью webhook. я также могу отправить параметр, используя намерение. Но эти параметры предварительно записаны. это может быть имя, которое я выбирал раньше, или системный предопределенный тип, такой как дата или число. Но я хотел бы отправить число, которое я могу увеличивать каждый раз, когда вызываю веб-хук.

То, что я пытаюсь сделать, — это список видео красного цвета с медиаплеером. Проблема в том, что я могу использовать плейлист с mediaobject, но когда я делаю это в конце видео, запускается следующее. Но что я хочу сделать, так это спросить пользователя, хочет ли он прочитать следующее видео / воспроизвести это видео или просмотреть предыдущее перед его запуском. Итак, я хотел бы иметь параметр videonumber, который был бы int, и после окончания первого видео я отправил бы его на веб-хук, и мой сервер отправил бы мне второе видео, в конце второго видео я отправил бы 2 на сервер. и так далее, чтобы всегда получать следующее видео…

В более общем плане, есть ли способ отправить параметр в webhook, например, можно ли отправить логическое значение? Я попытался добавить параметр в intent, но если параметр не указан пользователем, он не будет добавлен в мой Json, отправленный на мой сервер.

Есть ли способ добиться этого с помощью действия Google?

Ответ №1:

Похоже, что вы ищете какое-то хранилище сеансов. На время сеанса диалога вы сможете установить набор полей и свойств в формате JSON, который будет включать числовые и логические типы.

Между поворотами вы можете установить поле в хранилище сеансов:

 // Assign color to session storage
app.handle('storeColor', conv => {
  let color = 'red';
  conv.session.params.exampleColor = color;
});
 

И в более позднем намерении, возможно, последующем намерении, вы можете получить значение из того же места:

 // Retrieve color from session storage
app.handle('getStoredColor', conv => {
  let color = conv.session.params.exampleColor;
});
 

Комментарии:

1. Спасибо, это то, что мне было нужно