При вызове веб-перехватчика вы можете сохранять значения параметров для конкретного пользователя в разных сеансах в пользовательском хранилище. Затем ваше действие может использовать эти сохраненные значения позже в подсказках и условиях, а ваш код веб-перехватчика может при необходимости получать доступ к значениям в пользовательском хранилище для конкретного пользователя.
Состояние хранилища пользователя передается в запросе app.handle()
и сохраняется в объекте user
.
Чтение и запись данных в разговорах
Чтобы обновить или установить новое значение в хранилище пользователя, присвойте значение полю params
объекта user
в вызове веб-перехватчика. В следующем примере в пользовательском хранилище для параметра «exampleColor» задается значение «красный»:
// Assign color to user storage
app.handle('storeColor', conv => {
let color = 'red';
conv.user.params.exampleColor = color;
});
{
"responseJson": {
"session": {
"id": "1234567890123456789",
"params": {}
},
"prompt": {
"override": false
},
"user": {
"locale": "en-US",
"params": {
"verificationStatus": "VERIFIED",
"exampleColor": "red"
}
}
}
}
Чтобы получить доступ к данным, хранящимся в пользовательском хранилище, назначьте их переменной в вызове веб-перехватчика. В следующем примере извлекается значение из «exampleColor» в пользовательском хранилище:
// Retrieve color from user storage
app.handle('getStoredColor', conv => {
let color = conv.user.params.exampleColor;
});
{
"responseJson": {
"session": {
"id": "1234567890123456789",
"params": {}
},
"prompt": {
"override": false
},
"user": {
"locale": "en-US",
"params": {
"verificationStatus": "VERIFIED",
"exampleColor": "red"
}
}
}
}
Чтобы очистить ранее сохраненное значение, установите для него значение null
при вызове веб-перехватчика. В следующем примере очищается значение «exampleColor» в пользовательском хранилище:
// Clear color from user storage
app.handle('clearStoredColor', conv => {
conv.user.params.exampleColor = null;
});
{
"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
:
{
"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 запоминать меня» .