Google Home 操作的唯一用户 ID 不是唯一的

Hof*_*Dev 2 node.js actions-on-google

undefined在从设备请求时给出:

originalRequest.data.device.uniqueDeviceId
Run Code Online (Sandbox Code Playgroud)

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

哪个是用户唯一标识用户的唯一 ID?

Pri*_*ner 6

uniqueDeviceId谷歌从未记录过该文件并被删除,因为它可用于在未经用户许可的情况下泄露信息。

userId正如您定义的那样,无论是通过getUser()JSON 还是通过 JSON,都是唯一标识用户的正确方法。

通常,调用之间保持一致,但是,在许多情况下它会发生变化。最为显着地:

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

更新

匿名用户 ID已被弃用,将于 2019 年 5 月移除。 如果您需要用户的用户 ID,您可以使用帐户链接或自行生成并将其存储在用户存储对象中。这些都没有上述相同的限制。