本文重点:
本文主要记录我在接入Alexa音箱时,遇到的问题,及解决方案。解决细节透过“链接”的方式,记录我解决这些问题时参考的资料,具体解决方法就去看那些“链接”的说明,即可逐步解决。
我在接入过程,主要遇到的问题如下:
1. 服务器写好OAuth2的代码,但是亚马逊死活调不到。其实问题关键就在亚马逊要求OAuth2接口必须在443端口。
2. 看到要配置Lambda,看到陌生的事物总会有点抗拒。但是跟着参考资料做,其实是很简单的。
正文开始:
国人对接Alexa音箱前,最好先有接入国内音箱的经验,例如:小度音箱。先把整个音箱的对接流程弄清楚,包括OAuth2及协议对接部分。毕竟看国人自己写的中文文档,对接起来还是比较容易的。
首先要准备一台Alexa音箱设备。(国内没有卖,自己找代购)
Alexa音箱的接入流程,主要参考下面这篇
Alexa 智能音箱开发智能家居_Checking_buG的博客-CSDN博客
按着他的流程,首先在账户关联时,遇到第一个问题。我的服务器已写好OAuth2代码,并且已经配置了https。Alexa也确实透过我填的Authorization URI进入我的授权页面。但是点击授权后,死活就是不调我的Access Token URI,授权也无法成功。
后来在官方文档中
Requirements for Account Linking for Alexa Skills | Alexa Skills Kit
发现问题是我的https端口,不是在443上,而是在8081上。也就是地址类似https://xxx:8081/xxx 这样,后来将端口改到443端口,及地址变成https://xxx/xxx ,就解决调不到token接口的问题了。(为什么我的Authorization URI也有:8081,你就调的到,所以我一开始没在这上面找原因)
授权做好,要开始配置Lambda函数了。我也是根据这篇
Alexa 智能音箱开发智能家居_Checking_buG的博客-CSDN博客
将命令转发到我的服务器接口处理。但是,这篇没教你怎么导入 import com.amazonaws.services.lambda.runtime.Context; 这个包啊!
后来参考
基于AWS的Lambda+Alexa服务添加智能家居设备 (二)_HuYong-CSDN博客
在在pom.xml文件中,引入对接alexa的jar包,成功完成配置Lambda函数这个步骤,接下来就是对着协议,编写处理程序即可。协议就去看官方文档
Steps to Build a Smart Home Skill | Alexa Skills Kit
按着文档的对接数据,最终就大功告成啦!