家庭存储空间

在 webhook 调用中,您可以将参数值存储在 家庭存储空间中的同一家庭(基于 Home Graph)。您的 Action 可以 之后在提示和条件中使用这些存储的值 在必要时,代码可以访问特定家庭的家庭存储空间中的值。

家庭存储空间的状态通过 app.handle() 请求传递,并存储在 在 home 对象中。

限制

住宅存储空间不是住宅的一部分,因此无法用于移动设备 图表在网络钩子代码中,使用 HOME_STORAGE 设备功能 根据用户设备的功能扩展业务逻辑分支。

您必须选择使用家庭存储空间:

  1. 在 Actions 控制台中,前往 Deploy >目录信息
  2. 其他信息部分中,选中首页 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 页面管理的结构:

  1. 找到并选择您要查看或清除用户存储空间的操作。
  2. 滚动到页面底部: <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 级。
用户查询 退出。