用户存储空间

在 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 或 阻止该服务记住你

要查看您存储的数据或阻止服务记住您,请按以下说明操作 步骤:

  1. 前往 Google 助理目录
  2. 找到并选择您要查看或清除用户存储空间的操作。
  3. 滚动到页面底部:
    • 如需查看用户存储空间中的内容,请点击[查看存储的数据]
    • 如要重置用户存储空间中存储的用于该服务的数据,请点击重置
    • 要移除存储在用户存储空间中的数据,并停止相应服务,请执行以下操作: 记住你,请点击停止 action_name 记住我