我正在建立营养技能,我想要包括一些计算器。每次计算某些东西时,我都可以让Alexa询问参数,但我更愿意让用户为自己设置一个基本的配置文件来存储年龄,身高和体重值。
我找到了Amazon的一小部分文档,其中讨论了如何使用userId元素在会话中存储属性。这会对我说的话有用吗?或者我必须添加OAuth吗?
答案 0 :(得分:0)
有两种方法可以做到这一点:
1)您可以使用会话。
在此方法中,当会话结束时(用户停止与您的技能交谈),您的数据将会消失 更多详情https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/alexa-skills-kit-interface-reference#session-object
2)您应该实现oauth 2.0服务器来存储用户数据。这并不容易,但您可以在https://oauth.net/code/
找到一些oauth服务器示例要将您的技能连接到您的oauth服务器,您可以按照此处操作 https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/linking-an-alexa-user-with-a-user-in-your-system
奖励:如果您不想实施oauth服务器,可以使用Login with Amazon(或使用google登录)服务。但是您仍然需要一个数据库服务器来存储数据
答案 1 :(得分:0)
您在请求中获得的userId
唯一标识的是亚马逊帐户,而不是某个人。尽管可以选择在单个设备上切换不同的帐户(请参阅:https://www.amazon.com/gp/help/customer/display.html?nodeId=201628040),但已经讨论了识别人员的功能(http://time.com/4683981/amazon-echo-voice-id-feature-2017/),但它尚未提供。
正如评论中已经提到的,您需要在会话之间保留会话信息,并且可以使用userId
来标识每个帐户。
但无论如何,您不需要帐户链接或使用Oauth来简单地识别某个人。
此外,我建议你留在亚马逊生态系统中并在Lambda中运行你的东西(免费套餐和开发人员发布Alexa技能的开发学分)。
如果您需要帮助入门,我有一个使用Python的Alexa技能的单文件模板和几个示例: https://github.com/josepvalls/ask.py