node.js - Google Home 操作的唯一用户 ID 不唯一

标签 node.js actions-on-google

当设备请求时,这会给出未定义:

originalRequest.data.device.uniqueDeviceId

originalRequest.data.user.userId 给出的用户 ID 与 getUser().userId 相同,但不是唯一的。用户每次都会更改此 ID。

用户唯一的Id是哪个,用来标识该用户是唯一的?

最佳答案

Google 从未记录过 uniqueDeviceId 并已将其删除,因为它可用于在未经用户许可的情况下泄露信息。

您通过 getUser() 或 JSON 定义的 userId 是唯一标识用户的正确方法。

一般来说,调用之间保持一致,但是,there are a number of cases where it will change 。最值得注意的是:

  • 如果用户使用扬声器,但与该设备的任何注册语音配置文件都不匹配(或者设备上没有注册的语音配置文件)。在这些情况下,用户是“匿名”的,系统必须以这种方式对待他们的 ID。
  • 如果用户重置操作的标识符(就像他们可能删除网络 Cookie 一样)。
  • 如果用户在设备上重置其帐户。
  • 如果用户在 30 天内没有使用您的操作。

更新

匿名用户ID has been deprecated并将于 2019 年 5 月删除。如果您需要用户的 userId,您可以使用 account linking或者自己生成它并 store it in the user storage object 。这些都没有上述相同的限制。

关于node.js - Google Home 操作的唯一用户 ID 不唯一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48516120/

相关文章:

node.js - 我应该依赖 package.json 还是对我的 Node 模块进行版本控制?

python - 如何通过 Python 中的 Dialogflow fulfillment 从 google assistant 发送推送通知

node.js - 响应格式错误 : Webhook error on getting response from dialogflow web hook

node.js - 接收用户输入的评论

actions-on-google - askWith 谷歌上的操作列表

node.js - 如何在 Mongoose 查询中使用 if 语句?

javascript - 如何在模块中使用变量(登录系统)

Javascript FileReader.onload 在表单提交(POST)后不起作用

node.js - 如何将 gulp 设置为在 Visual Studio 2017 和 msbuild 中以相同方式运行,而无需更改我的构建脚本?