这一篇文章主要讲解服务器端的设置,这里我使用的是腾讯云,当时学生价1块钱一个月买的,现在的学生价涨到了10块,为我当时的机智点赞。为什么一定要使用服务器呢,这个是因为天猫精灵协议的对接是云服务器与云服务器的对接并不支持与硬件设备的直接对接,看一下天猫精灵的接入方式的简介就可以知道了。
从图中可以看到,用户的语音指令通过天猫精灵上传阿里云语音服务器通过解析后发送响应的协议到第三方设备控制云(前提是要有第三方的授权),然后第三方的云再与用户的设备进行沟通控制。这种控制方式我个人认为是很合理的,首先这是两套独立的系统,只是通过协议对接,相互不相影响,独立性高,安全性高。阿里专注于做语音识别,语义分析等AI方面的事情,而第三方硬件厂商专注于做自己的硬件设备,各归其所,能把产品的性能发挥到极致。
在这再次声明,我的目的是通过使用一定的方法达到我的目的,对于深层次的东西并没有深究,由于涉及的东西过多,文章中如果出现错误,麻烦大神一定批评指正,谢谢。
在正式做之前我们先把这个原理捋一捋,原理清楚了就知道我们要做什么了,下边的一段内容主要是参考天猫精灵的官方开发文档。只截取重点。首先我们要在天猫精灵的开发网站上发布一项智能家居的技能,最关键的是在技能发布的时候的服务设置,这里就明确要求了我们一定要有第三方授权协议的支持Oauth2。
当授权成功后,对接协议会利用POST发送一条设备探测信息,我们需要按照协议的标准返回设备信息,具体协议文本如下。
所以这里就需要使用https的post和相关协议解析等,另外对于相应的https协议要有签名证书,自签名的协议不可用,所以我们就要进行相关的SSL签名证书的获取。
当一切完事之后这个桥就算搭上了,也就是说你已经能拿到天猫精灵经过分析后的动作、设备名等一系列的信息了,剩下的事就是你的设备与你的云服务器进行通讯的事了。我们就按照这个思路走下去。