从2018年开始接触物联网行业,因为公司的业务需求,断断续续花了两个月时间,看了较多中外文档,把Alexa对接流程终于搞清楚。由于开发过程中,国内这方面文档、博客介绍不是很多,且有的博客写的潦草几句话,所以下定决心,写一篇详细的Alexa对接文档。如果我的博客帮助了你,希望可以赞赏支持一下。
说明
使用aws各类服务,你需要拥有一个亚马逊账户,可以自行注册。这一块网上资料较多,本文就不多说明亚马逊账户有关内容。
对接Alexa使用到的aws服务有Lambda,S3,Alexa skill,IOT Core
正文
进入AWS开发者平台控制台,搜索Lambda服务,点击进入Lambda函数管理控制台,如下
按照要求输入函数名称,运行时代码(本人是做Java出身,所以是选择Java语言开发运行代码),点击 创建函数
选择触发器 Alexa Smart Home (以智能家居类型为例)
填写应用程序ID (获取ID流程:点击蓝色字体Alexa 部分,进入Alexa Skills 管理平台)
输入Skill name,选择Smart Home,再点击右上角的 Create Skill
复制 Your Skill ID ,再次进入Lambda函数的 添加触发器 页面,将此ID粘贴到 应用程序ID 的输入框
进入此页面后,复制函数 ARN,再次进入 Alexa Skills 管理平台,将此 ARN复制到 Default endpoint 输入框
再次进入Lambda函数管理平台
点击 上传自... 有两个选择项: .zip或jar文件 与 Amazon S3位置
代码源注意点:由于在创建Lambda函数时,选择了Java运行时,那么不支持代码编辑器在线编辑,需要线下开发好,打包上传 (如果你会使用Node.js、Python 和 Ruby,则可以在线编辑)。在这里,会有同学要问,这部分代码是来干嘛的? 其实官方有说明,这部分代码是运行时代码,也就是说这部分代码是至关重要的,在整个流程都需要用到这部分代码,比如用户账户授权,设备发现,设备控制等等都需要这部分代码去实现。
下面会有这部分代码的Java示例,如下
此部分代码写完后,需要对项目进行打包,建议打jar包。此外还需要此处理类 AlexaLambdaHandler 在打包项目中的目录位置。Lambda函数需要通过此目录位置,找到处理方法。关于如何在自己业务服务器的代码中接收处理 Alexa的请求,可以查看Alexa文档:https://developer.amazon.com/en-US/docs/alexa/ask-overviews/what-is-the-alexa-skills-kit.html
由于我的运行代码是使用SpringBoot框架,打包后,如下
再次进入Lambda函数管理平台
更改处理程序的路径,这里的格式为 包名.类名::方法名。在打包运行代码的时候有说明,需要知道处理类 AlexaLambdaHandler 在打包项目中的目录位置,那么就是在这里使用的。比如处理类 AlexaLambdaHandler 在打包项目的 com.test.base 包目录下,那么组装后的路径就是 com.test.base.AlexaLambdaHandler,然后在处理类AlexaLambdaHandler中的接收方法名是handleRequest,那么完整路径为 com.test.base.AlexaLambdaHandler::handleRequest
以上配置完成后,Lambda函数与Alexa Skill技能已经关联起来。再次进入Alexa Skill管理平台,配置Oauth2授权相关信息
点击 ACCOUNT LINKING,进入填写Oauth2授权信息页
这部分需要开发者了解自己项目集成Oauth2服务,按照图示流程配置完成后,点击右上角保存。
按照上面流程配置完成后,就要进入Alexa App进行真机调试。在调试阶段,你必须使用Alexa开发者账户登录Alexa App。
需要整套开发方案可以私信
结尾
承接硬件设备物联开发,提供私有化部署物联网平台。
提供电视,冰箱,空调,门锁,插座,摄像头,音箱,电吹风等传统产品进行智能化的开发方案。
提供共享充电宝,智能售货机等产品的整套设施落地开发。
承接微信小程序,公众号,H5的接入开发。
承接ERP,应用平台,各类品牌官网的综合开发项目。
HuYongSoSo
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。