При вызове веб-перехватчика вы можете сохранять значения параметров для конкретного пользователя в разных сеансах в пользовательском хранилище. Затем ваше действие может использовать эти сохраненные значения позже в подсказках и условиях, а ваш код веб-перехватчика может при необходимости получать доступ к значениям в пользовательском хранилище для конкретного пользователя.
Состояние хранилища пользователя передается в запросе app.handle()
и сохраняется в объекте user
.
Чтение и запись данных в разговорах
Чтобы обновить или установить новое значение в хранилище пользователя, присвойте значение полю params
объекта user
в вызове веб-перехватчика. В следующем примере в пользовательском хранилище для параметра «exampleColor» задается значение «красный»:
Node.js
// Assign color to user storage app.handle('storeColor', conv => { let color = 'red'; conv.user.params.exampleColor = color; });
JSON
{ "responseJson": { "session": { "id": "1234567890123456789", "params": {} }, "prompt": { "override": false }, "user": { "locale": "en-US", "params": { "verificationStatus": "VERIFIED", "exampleColor": "red" } } } }
Чтобы получить доступ к данным, хранящимся в пользовательском хранилище, назначьте их переменной в вызове веб-перехватчика. В следующем примере извлекается значение из «exampleColor» в пользовательском хранилище:
Node.js
// Retrieve color from user storage app.handle('getStoredColor', conv => { let color = conv.user.params.exampleColor; });
JSON
{ "responseJson": { "session": { "id": "1234567890123456789", "params": {} }, "prompt": { "override": false }, "user": { "locale": "en-US", "params": { "verificationStatus": "VERIFIED", "exampleColor": "red" } } } }
Чтобы очистить ранее сохраненное значение, установите для него значение null
при вызове веб-перехватчика. В следующем примере очищается значение «exampleColor» в пользовательском хранилище:
Node.js
// Clear color from user storage app.handle('clearStoredColor', conv => { conv.user.params.exampleColor = null; });
JSON
{ "responseJson": { "session": { "id": "1234567890123456789", "params": {} }, "prompt": { "override": false }, "user": { "locale": "en-US", "params": { "verificationStatus": "VERIFIED" } } } }
Ссылка на сохраненные значения в подсказках
Вы можете ссылаться на значения, хранящиеся в пользовательском хранилище, в приглашении . Для ссылки на значение используйте $user.params. PARAMETER_NAME
Синтаксис $user.params. PARAMETER_NAME
, где PARAMETER_NAME
— это имя, указанное в веб-перехватчике при установке параметра.
Например, вы ранее сохранили значение цвета в пользовательском хранилище как параметр exampleColor
. Чтобы получить доступ к этому значению в командной строке, вы ссылаетесь на это значение, используя $user.params.exampleColor
:
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $user.params.exampleColor." }] } }] }
Ссылка на сохраненные значения в условиях
Вы также можете ссылаться на значения, хранящиеся в пользовательском хранилище, в условиях . Чтобы ссылаться на значение, используйте user.params. PARAMETER_NAME
Синтаксис user.params. PARAMETER_NAME
, где PARAMETER_NAME
— это имя, указанное в веб-перехватчике при установке параметра.
Например, вы ранее сохранили значение цвета в пользовательском хранилище как параметр exampleColor
и хотите сопоставить его со значением «красный» в условии. В вашем условии вы ссылаетесь на сохраненное значение, используя user.params.exampleColor
. Тогда выражение вашего условия будет выглядеть следующим образом:
Синтаксис условия
user.params.exampleColor == "red"
Срок действия данных пользовательского хранилища
Для проверенных пользователей срок действия данных, хранящихся в пользовательском хранилище, истекает в зависимости от их настроек активности в Интернете и приложениях , а также может быть удален самим действием. Для пользователей, которые не прошли проверку, Ассистент очищает содержимое пользовательского хранилища в конце разговора.
Действия в Google устанавливают статус проверки пользователя в начале каждого разговора на основе различных индикаторов начала разговора. Например, пользователь, вошедший в Google Assistant на своем мобильном устройстве, имеет статус проверки VERIFIED
.
Ниже приведены возможные причины, по которым пользователь имеет статус проверки GUEST
:
- У пользователя отключены персональные результаты .
- Пользователь отключил свою историю приложений и веб-поиска . Имейте в виду, что у некоторых пользователей этот параметр может быть отключен на уровне домена.
- Если на устройстве включено Voice Match, и сопоставление не удалось или пользователь вызывает Ассистента, не используя свой голос (например, долгое нажатие на устройстве Nest Home).
- Пользователь не вошел в систему.
Всегда проверяйте статус проверки пользователя перед сохранением данных в пользовательском хранилище, чтобы предотвратить взаимодействие гостевых пользователей с функцией, которая у них не работает.
Видимость для пользователей
Как пользователь вы можете просматривать данные, хранящиеся в вашем пользовательском хранилище, для действий, которые вы вызываете. Вы также можете удалить данные, хранящиеся в вашем пользовательском хранилище, из определенного действия или запретить службе запоминать вас.
Чтобы просмотреть сохраненные данные или запретить службе запоминать вас, выполните следующие действия:
- Перейдите в каталог Ассистента .
- Найдите и выберите действие, для которого вы хотите просмотреть или очистить пользовательское хранилище.
- Прокрутите страницу вниз:
- Чтобы просмотреть содержимое вашего пользовательского хранилища, нажмите [Просмотреть сохраненные данные] .
- Чтобы сбросить данные, хранящиеся в вашем пользовательском хранилище сервиса, нажмите «Сбросить» .
- Чтобы удалить данные, хранящиеся в вашем пользовательском хранилище, и запретить службе запоминать вас, нажмите « Запретить action_name запоминать меня» .