此文的方法是DIY一个测试版Skill,会将设备直接暴露在公网上,安全性很差,而且账户认证什么的都是写死的,只适合自己玩,而且外网接口千万不要外泄。
原文链接:http://blog.youkuaiyun.com/luhanglei/article/details/56677567
最近发私信的人很多,决定直接创建一个开发爱好者的群:376862009
实现原理
Amazon Alexa →Amazon Cloud→Amazon Lambda→内网穿透服务器→局域网内的设备→终端(灯等设备)
新建一个Smart Home Skill
过程跟我前段时间写的文章差不多,但是这次创建的是Smart Home的Skill,不再是普通的Skill,也同时意味着必须要绑定账户(Auth Code Grant),而且EndPoint必须要使用Amazon Lambda了。
Endpoint
直接在AWS“弗吉尼亚北部”区开通一个python语言(我习惯用JAVA,但是在这里没有python用起来简单,所以现学现卖写python)的空lambda,开通完了以后添加Alexa Smart Home的触发器,先放着。把arn:aws:lambda:开头的地址粘贴到Endpoint里。lambda每个月有100万次的免费额度,自己用足够了,也不必担心超时收费。算了一下,因为自己用不会并发,每个月可以免费用37天……
绑定账户
绑定的要求是要使用https进行oauth认证,而且只在初次启用Skill的时候会使用。因此喜欢自己折腾的童鞋可以自己找服务器写一个Oauth认证完成这一步。不想折腾或者不会写服务器的童鞋可以直接用我提供的代码包,部署到百度云BAE上(java8环境),在Authorization URL中填写你的域名+/login,比如:https://***.duapp.com/login,在Access Token URI中输入你的域名+/token,比如:https://***.duapp.com/token,提交之后应该就可以在Alexa的APP中的Your Skill里看到刚刚创建的Skill了,点enable,过一会即显示完成绑定。这时候把云服务器删掉就行了,节约money。
获取设备必要的信息