Amazon Alexa Skill开发:如何获取主亚马逊账户ID而非.ask前缀ID
Alexa Skill与亚马逊主账号ID关联问题解答
问题A解答
不能直接获取。amzn1.ask.account.前缀的用户ID是Alexa平台为每个Skill单独生成的匿名标识符,是亚马逊为了用户隐私做的隔离设计,默认不会和用户的亚马逊主账号ID做公开映射,你无法在Lambda中直接通过内置接口拿到用户的LWA主账号ID。
问题B解答
不能直接获取。
Login with Amazon(LWA)的OAuth授权流程返回的所有用户字段中,不会包含任何Alexa侧的用户ID相关信息,亚马逊没有在LWA体系中暴露该类数据。
关联两个ID的可行方案
如果你需要打通两边的用户数据,唯一可行的方式是为你的Alexa Skill配置账号关联,用你已接入的LWA作为授权提供商:
- 登录Alexa开发者控制台,进入对应Skill的设置页,找到「账号关联」模块,选择OAuth 2.0授权类型,填入你现有LWA应用的客户端ID、客户端密钥、授权端点、令牌端点等配置信息
- 用户首次使用你的Skill时会收到账号绑定提示,引导用户完成LWA登录授权
- 授权完成后,你可以在Lambda中通过
ask_utils.request_util.get_access_token(handler_input)获取到用户的LWA访问令牌,用该令牌调用LWA的用户信息接口即可拿到amzn1.account.前缀的主账号ID - 你自行在服务端存储Alexa用户ID与LWA主账号ID的映射关系,即可完成两边用户数据的关联。
内容的提问来源于stack exchange,提问作者jave.web
相关产品推荐
相关产品推荐

