我们将创建一个允许用户控制Wi-Fi LED的Alexa技能。每次用户使用该技能时,我们希望我们可以在该技能的AWS Lambda函数中使用的SDK的回调中获取用户的帐户信息。
例如,用户登录到他的亚马逊帐户并使用他的Alexa-Enabled设备并说“Alexa,要求打开”。然后,我们所做的技能将触发Lambda函数并传递用户的帐户详细信息,以便我们可以在我们的主机中检查该用户是否拥有该设备。
那么,Alexa技能套件中使用的Java SDK中是否有回调,其中包含用户的帐户信息?
谢谢!
答案 0 :(得分:7)
SDK只为您提供userId ...
{
"session": {
"user": {
"userId": "amzn1.ask.account.AFPabcdef<etc>"
这标识了特定用户,用于您应用的一次安装。这就是你自动获得的。
您可以使用帐户关联手动将此用户与其他帐户相关联:
https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/linking-an-alexa-user-with-a-user-in-your-system
您需要在某种数据库/数据存储中存储有关此用户的信息,但您不需要为每个请求加载/保存它 - 您可以存储此用户信息(或任何其他会话数据)在您的回复中,SDK会在同一会话中的下一个请求中将其传回给您。