从 dialogflow fulfillment webhook 将数据保存到用户存储中

Saving data into user storage from dialogflow fulfillment webhook

我正在探索通过客户端库在对话流中跨对话保存数据的方法。到目前为止我想出的是:

  1. 上下文 - 您可以将变量保存在输出上下文中并赋予其较长的生命周期,例如 conv.context.set。
  2. 使用会话作为密钥将其存储到 RDIS 等外部数据库中。
  3. 我还找到了另一种使用 userStorage 的方法 https://developers.google.com/assistant/df-asdk/save-data#asdk_node_conv_data

在用户存储的情况下,我应该担心一些问题吗?

没有理由担心使用 userStorage,使用它的一些优点是:

  1. 当助手可以为用户匹配身份时,userStorage的内容永不过期,只有用户或操作本身才能清除它。
  2. 您可以通过以下方式清除操作的 userStorage 字段的内容 将 AppResponseresetUserStorage 字段设置为 true。
  3. AppResponse 对象的 userStorage 字段是一个字符串,其中包含由 Action 提供的不透明标记,该标记在特定用户的对话中保存。

重要:在使用用户存储之前获得用户同意一些国家/地区的法规要求开发者在访问用户存储或在用户存储中保存某些信息(如个人信息)之前获得用户的同意。

由于您将进入用户个人存储空间,因此您需要先征得用户的同意。