在 webhook 调用中,您可以存储特定用户的参数值, 存储的会话数量然后,您的 Action 可以稍后在 提示和条件,网络钩子代码可以访问用户存储空间中的值 。
用户存储状态通过 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" } } } }
如需访问存储在用户存储空间中的数据,请将其分配给 webhook 中的变量 调用。以下示例从“exampleColor”中检索值在用户中 storage:
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" } } } }
如需清除之前保存的值,请在 webhook 调用中将值设置为 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
语法,其中
PARAMETER_NAME
是将
参数。
例如,您之前在用户存储空间中存储了一个颜色值,
参数 exampleColor
。如需在提示中访问该值,您需要引用
值使用 $user.params.exampleColor
:
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $user.params.exampleColor." }] } }] }
在条件中引用存储值
您还可以在条件中引用存储在用户存储空间中的值。接收者
引用该值,请使用 user.params.PARAMETER_NAME
语法,其中 PARAMETER_NAME
是在
webhook。
例如,您之前在用户存储空间中存储了一个颜色值,
参数 exampleColor
,您希望将其与值“red”匹配以
条件。在条件中,您可以使用
user.params.exampleColor
。然后,您的条件表达式将如下所示:
条件语法
user.params.exampleColor == "red"
用户存储数据的有效期
对于经过验证的用户,存储在用户存储空间中的数据将根据用户其 网站和应用活动设置,也可由 Action 本身清除。 对于未经验证的用户,Google 助理会在以下位置清除用户存储空间中的内容: 对话的结尾。
Actions on Google 会在每次开始时设置用户的验证状态
根据各种指标来判断对话。如
例如,某位用户在移动设备上登录 Google 助理后
VERIFIED
的验证状态。
导致用户处于验证状态的原因可能有以下几种
GUEST
:
- 用户关闭了个人信息相关结果功能。
- 用户停用了自己的网页和应用活动。请注意 用户可能在域级别停用了此设置。
- 如果设备启用了 Voice Match,但匹配失败或用户调用 无需使用语音即可与 Google 助理对话(例如长按 Nest Home) 设备)。
- 用户未登录。
在向用户存储数据之前,务必先检查用户的验证状态 存储空间,以防止访客用户与出错的功能互动 。
对用户的公开范围
作为用户,您可以查看用户存储空间中存储的与您调用的 Action 相关的数据。 您还可以从特定 Action 或 阻止该服务记住你
要查看您存储的数据或阻止服务记住您,请按以下说明操作 步骤:
- 前往 Google 助理目录。
- 找到并选择您要查看或清除用户存储空间的操作。
- 滚动到页面底部:
- 如需查看用户存储空间中的内容,请点击[查看存储的数据]。
- 如要重置用户存储空间中存储的用于该服务的数据,请点击重置。
- 要移除存储在用户存储空间中的数据,并停止相应服务,请执行以下操作: 记住你,请点击停止 action_name 记住我。