在 webhook 调用中,您可以将参数值存储在 家庭存储空间中的同一家庭(基于 Home Graph)。您的 Action 可以 之后在提示和条件中使用这些存储的值 在必要时,代码可以访问特定家庭的家庭存储空间中的值。
家庭存储空间的状态通过 app.handle()
请求传递,并存储在
在 home
对象中。
限制
住宅存储空间不是住宅的一部分,因此无法用于移动设备
图表在网络钩子代码中,使用 HOME_STORAGE
设备功能
根据用户设备的功能扩展业务逻辑分支。
您必须选择使用家庭存储空间:
- 在 Actions 控制台中,前往 Deploy >目录信息。
- 在其他信息部分中,选中首页 storage。
读取和写入家庭数据
如需更新或设置家庭存储空间中的新值,请将该值分配给params
字段。home
以下示例
设置“exampleColor”设为“红色”家庭存储空间:
Node.js
// Assign color to home storage app.handle('storeColor', conv => { let color = 'red'; conv.home.params.exampleColor = color; });
JSON
{ "responseJson": { "session": { "id": "1234567890123456789", "params": {} }, "prompt": { "override": false }, "home": { "params": { "exampleColor": "red" } } } }
如需访问存储在主存储空间中的数据,请将其分配给网络钩子中的变量 调用。以下示例从“exampleColor”中检索值首页 storage:
Node.js
// Retrieve color from home storage app.handle('getStoredColor', conv => { let color = conv.home.params.exampleColor; });
JSON
{ "responseJson": { "session": { "id": "1234567890123456789", "params": {} }, "prompt": { "override": false }, "home": { "params": { "homeColor": "red" } } } }
如需清除之前保存的值,请在 webhook 调用中将值设置为 null
。
以下示例清除了“exampleColor”的值家庭存储空间:
Node.js
// Clear color from home storage app.handle('clearStoredColor', conv => { conv.home.params.exampleColor = null; });
JSON
{ "responseJson": { "session": { "id": "1234567890123456789", "params": {} }, "prompt": { "override": false }, "home": { "params": {} } } }
在提示中引用存储的值
您可以在提示中引用存储在主存储空间中的值。参考
值,使用 $home.params.PARAMETER_NAME
语法,其中 PARAMETER_NAME
是在
webhook。
例如,您之前在主存储空间中存储了一个颜色值,
参数 exampleColor
。如需在提示中访问该值,您需要引用
值使用 $home.params.exampleColor
:
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $home.params.exampleColor." }] } }] }
在条件中引用存储的值
您还可以在 conditions 中引用存储在主存储空间中的值。接收者
引用该值,请使用 home.params.PARAMETER_NAME
语法,其中 PARAMETER_NAME
是在
webhook。
例如,您之前在主存储空间中存储了一个颜色值,
参数 exampleColor
,您希望将其与值“red”匹配以
条件。在条件中,您可以使用
home.params.exampleColor
。然后,您的条件表达式应如下所示:
:
条件语法
home.params.exampleColor == "red"
主存储空间数据的有效期
家庭存储数据会在连续 90 天无操作后被擦除 调用。在与 Home Graph 关联的任何设备上调用 Action 结构会重置 90 天的计时器如果一个 Home Graph 结构被删除, 相应的家庭存储数据会被清除。
对于使用住宅存储空间的 Action,Home Graph 结构管理器可以清除住宅 用于存储其在 Google 助理目录中的 Action 页面管理的结构:
- 找到并选择您要查看或清除用户存储空间的操作。
- 滚动到页面底部:
<ph type="x-smartling-placeholder">
- </ph>
- 如需移除存储在家庭存储空间中的数据,请点击停止 action_name 不再记住我。
当设备管理器将其与结构分离时,家庭存储空间 也分离了住宅存储空间数据会继续与设备相关联 即使结构管理员发生变化,除非结构管理员将其清除。
模拟器中的 Home 存储空间数据
使用 Actions 控制台中的模拟器测试你的 Action 时, 存储在家庭存储空间中的数据与物理存储空间 设备。模拟器被视为其自身 Home Graph 的一部分,因此数据不会 并存在于您网络中的其他设备中此外,首页 模拟未验证的会话时,存储数据不会跨会话保留 user 模拟器设置处于启用状态。
互动示例
以下是已登录用户首次调用 操作:
用户查询 | Hey Google,和 ExampleAction 对话。 |
---|---|
Google 助理回复 | 获取 ExampleAction。 |
Google 助理回复 | 提醒你一下,每次播放 ExampleAction 时都会保存 其他家庭成员可以接着上次的进度继续播放 |
ExampleAction 响应 | 尊敬的已验证用户:您的等级为 0。请说下一步、重置或取消。 |
用户查询 | 下一步。 |
ExampleAction 响应 | 您目前的等级是 1。 |
用户查询 | 退出。 |
然后,当同一经过验证的用户在一段时间后返回该 Action 时:
用户查询 | Hey Google,和 ExampleAction 对话。 |
---|---|
Google 助理回复 | 获取 ExampleAction。 |
ExampleAction 响应 | 尊敬的已验证用户:您目前的等级是 1。请说下一步、重置或取消。 |
用户查询 | 下一步。 |
ExampleAction 响应 | 您目前的等级是 2 级。 |
用户查询 | 退出。 |
第二天,未经验证的用户在其他设备上与 Action 互动 (如 Home Graph 中所指定)。
用户查询 | Hey Google,和 ExampleAction 对话。 |
---|---|
Google 助理回复 | 获取 ExampleAction。 |
Google 助理回复 | 提醒你一下,每次播放 ExampleAction 时都会保存 其他家庭成员可以接着上次的进度继续播放 |
ExampleAction 响应 | 尊敬的访客用户:您目前的等级是 2 级。请说下一步、重置或取消。 |
用户查询 | 下一步。 |
ExampleAction 响应 | 您目前的等级是 3 级。 |
用户查询 | 退出。 |