跨多个 Alexa 技能跟踪 userId

Tracking userId across multiple Alexa skills

如果我创建了多个 Alexa 技能,是否有一个 userId 在所有技能中都保持不变?具体来说,如果用户在技能 1 中执行操作,我想知道技能 2 和技能 3 的操作......并且基本上允许技能共享相同的 DynamoDB table。

理想情况下,我不会要求用户进行任何类型的登录,但它会根据与他们的亚马逊账户相关联的唯一标识符知道这是同一用户。

没有。大约一年前,亚马逊进行了特定更改以防止您这样做。您也无法识别卸载您的技能然后重新安装它的用户。您总是会得到一个新的随机用户 ID。

移动开发也发生了同样的事情:Google Apple 正在阻止访问任何允许您识别物理设备或识别安装不同应用程序的用户而不进行某种操作的任何内容帐户链接 - 所以我怀疑亚马逊会放松这一点。

根据this part of the documentation,应该可以使用 deviceId 而不是 userId:

device An object providing information about the device used to send the request. The device object contains both deviceId and supportedInterfaces properties. The deviceId property uniquely identifies the device. [...]

您发现它是:

deviceId = this.event.context.System.device.deviceId

它与您使用新地址请求设备地址时需要使用的值相同api。因此,我不明白为什么它也不能满足您的需求。