导航链接

(1)香橙派+apache2与php+天猫精灵=自建平台语音支持--前言

(2)香橙派+apache2与php+天猫精灵=自建平台语音支持--香橙派操作系统安装

(3)香橙派+apache2与php+天猫精灵=自建平台语音支持--香橙派环境配置

(4)香橙派+apache2与php+天猫精灵=自建平台语音支持--apache2与php

(5)香橙派+apache2与php+天猫精灵=自建平台语音支持--MariaDB的安装

(6)香橙派+apache2与php+天猫精灵=自建平台语音支持--天猫精灵对接1

(7)香橙派+apache2与php+天猫精灵=自建平台语音支持--天猫精灵对接2

(8)香橙派+apache2与php+天猫精灵=自建平台语音支持--天猫精灵对接3

(9)香橙派+apache2与php+天猫精灵=自建平台语音支持--天猫精灵对接4

(10)香橙派+apache2与php+天猫精灵=自建平台语音支持--天猫精灵对接5

(11)香橙派+apache2与php+天猫精灵=自建平台语音支持--天猫精灵对接6

(12)香橙派+apache2与php+天猫精灵=自建平台语音支持--天猫精灵对接7

开始

由于与天猫精灵对接的知识点有点多,所以对接的内容会分为几篇文章进行进行。

现在我们有了自己的服务器,因为天猫精灵协议的对接是云服务器与云服务器的对接并不支持与硬件设备的直接对接,看一下天猫精灵的接入方式的简介就可以知道了。

从图中可以看到,用户的语音指令通过天猫精灵上传阿里云语音服务器通过解析后发送响应的协议到第三方设备控制云(前提是要有第三方的授权),然后第三方的云再与用户的设备进行沟通控制。这种控制方式我个人认为是很合理的,首先这是两套独立的系统,只是通过协议对接,相互不相影响,独立性高,安全性高。阿里专注于做语音识别,语义分析等AI方面的事情,而第三方硬件厂商专注于做自己的硬件设备,各归其所,能把产品的性能发挥到极致。

原理

在正式做之前我们先把这个原理捋一捋,原理清楚了就知道我们要做什么了,下边的一段内容主要是参考天猫精灵的官方开发文档。只截取重点。首先我们要在天猫精灵的开发网站上发布一项智能家居的技能,最关键的是在技能发布的时候的服务设置,这里就明确要求了我们一定要有第三方授权协议的支持Oauth2。

当授权成功后,对接协议会利用POST发送一条设备探测信息,我们需要按照协议的标准返回设备信息,具体协议文本如下:

其他品类设备响应返回

{"header":{"namespace":"AliGenie.Iot.Device.Discovery","name":"DiscoveryDevicesResponse","messageId":"1bd5d003-31b9-476f-ad03-71d471922820","payLoadVersion":1},"payload":{"devices":[{"deviceId":"34ea34cf2e63","deviceName":"light1","deviceType":"light","zone":"",          "brand":"","model":"",     "icon":"https://git.cn-hangzhou.oss-cdn.aliyun-inc.com/uploads/aicloud/aicloud-proxy-service/41baa00903a71c97e3533cf4e19a88bb/image.png","properties":[{"name":"color","value":"Red"}],"actions":["TurnOn","TurnOff","SetBrightness",       "AdjustBrightness",     "SetTemperature","Query"        ],"extensions":{"extension1":"","extension2":""}}]}
}

所以这里就需要使用https的post和相关协议解析等,另外对于相应的https协议要有签名证书,自签名的协议不可用,所以我们就要进行相关的SSL签名证书的获取。

当一切完事之后这个桥就算搭上了,也就是说你已经能拿到天猫精灵经过分析后的动作、设备名等一系列的信息了,剩下的事就是你的设备与你的云服务器进行通讯的事了。我们就按照这个思路走下去。

OAuth2.0第三方授权服务器的搭建

在开始之前先放两篇参考,一篇英文http://bshaffer.github.io/oauth2-server-php-docs/cookbook/,一篇中文https://www.cnblogs.com/endv/p/7868549.html,中文博客里的内容基本上是把英文官方文档翻译一遍。到这里如果你不知道OAuth2.0是啥可以自行百度,百度上一堆讲解OAuth2.0到底是什么用来干什么用的。

正式搭建之前先看一下天猫精灵官方对接文档怎么说,

其实道理很简单,就是阿里平台默认接入的硬件厂商都有自己的平台,既然有自己的平台就有自己用户认证系统,天猫精灵就是通过OAuth2.0在不需要注册新的硬件厂商用户的同时使用用户已有的账号获得硬件厂商的认证系统的授权,使得天猫精灵能够访问该用户名下的硬件设备,然后完成指令的交互。不知道这么解释,解释清楚没,再用大白话说一遍就是“我不是你家人要吃你家饭就要经过你爸妈的同意而不用成为你的家人”,嗯,我感觉这句话不错,哈哈。好那我们现在就要知道我们搭建这个具体需要神马东西。看图

我们做了这么多其实就是要提供这些东西,这个东西在神马地方提供,不急这里先不说,我们放到下一篇文章中说。先解释一下这些东西都是神马意思,然后再做的时候就比较有针对性
1、账户授权连接,指的就是提供输入你在硬件厂商注册的账号和秘密的连接,这个由第三方硬件厂商提供(哦,好像我们现在就是第三方硬件厂商,嗯,没毛病这个应该由我们来提供),这个就是我们在搭建OAuth2.0需要提供的第一项内容
2、ClientID,Client Secret,前者是你在第三方厂商注册的ID,后者是密码
3、Access Token URL是授权的连接,这个在OAuth2.0会有一个专门的文件做这个事情。
4、开发者网关地址,这个地址是天猫精灵协议POST的地址,会在协议对接中讲。

(6)香橙派+apache2与php+天猫精灵=自建平台语音支持--天猫精灵对接1相关推荐

  1. (8)香橙派+apache2与php+天猫精灵=自建平台语音支持--天猫精灵对接3

    导航链接 (1)香橙派+apache2与php+天猫精灵=自建平台语音支持--前言 (2)香橙派+apache2与php+天猫精灵=自建平台语音支持--香橙派操作系统安装 (3)香橙派+apache2 ...

  2. (11)香橙派+apache2与php+天猫精灵=自建平台语音支持--天猫精灵对接6

    导航链接 (1)香橙派+apache2与php+天猫精灵=自建平台语音支持--前言 (2)香橙派+apache2与php+天猫精灵=自建平台语音支持--香橙派操作系统安装 (3)香橙派+apache2 ...

  3. (13)香橙派+apache2与php+天猫精灵=自建平台语音支持--duerOS对接

    这篇主要总结一下小度音箱的对接方法,答题流程与天猫精灵一样,只是php稍有不同,我也会把php源码上传,需要的可以下载,流程与天猫精灵的php文件大体相同,只是其中的细节稍有差异. php文件链接:h ...

  4. 【阿里云生活物联网架构师专题 ②】esp8266 sdk 直连接入阿里云物联网平台,实现天猫精灵找队友零配网功能和语音控制;

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.esp32接入阿里云物联网平台,实现天猫精灵语音控制: 2.es ...

  5. 【阿里云生活物联网架构师专题 ①】esp32 sdk 直连接入阿里云物联网平台,实现天猫精灵语音控制;

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.esp32接入阿里云物联网平台,实现天猫精灵语音控制: 2.es ...

  6. Mysql orangepi_SSH远程登录香橙派Orange Pi Zero2开发板的操作方法

    香橙派Zero2开发板是新一代开源的单板电脑,采用全志H616 四核 64位处理器,拥有512MB/1GB 内存可选,集成千兆以太网卡.蓝牙5.0+双频WiFi.Micro-HDMI输出.USB2.0 ...

  7. 香橙派PC Plus电脑开发板制作网络打印服务器

    香橙派PC Plus是一款开源的单板电脑,新一代的arm开发板,使用全志Allwinner H3系统级芯片,拥有1GB DDR3 内存,板载8GB EMMC Flash 存储,可以运行Android4 ...

  8. 【工程师整活】Ai-WB1-A1S实现离线语音+APP+天猫精灵控制风扇

    文章目录 前言 一.控制主板 二.转接板原理图 三.接线与烧录 1.转接板接线 2.固件烧录 四.离线语音功能 五.App 控制功能 1.云平台产品创建 2.添加设备 3.五元组烧录 4.进入配网 4 ...

  9. 香橙派Zero2电视盒子开发板连接HDMI如何修改分辨率

    香橙派Zero2开发板采用全志H616 四核 64位处理器,拥有512MB/1GB 内存可选,集成千兆以太网卡.蓝牙5.0+双频WiFi(2.4GHz和5GHz).USB2.0.TF卡槽.板载2MB ...

最新文章

  1. 大数据驱动下的微博社会化推荐
  2. 微信小程序(六) 文章详情静态页面detail
  3. 尝试修改源码需要用到git存一下
  4. django 日志写入mysql_如何将django orm模型 写入数据库
  5. HTML5---新增客户端储存
  6. 把你的项目升级到IE8
  7. 毕淑敏:接纳自卑,感悟幸福
  8. linux gpio信号量,执行完? OSIntExit(); 后,再进行任务调度,可是那两个任务都是在等待信号量啊,难道执行完中断函数后会释放一个信号量吗?...
  9. 一位资深程序员大牛给予Java的学习路线建议
  10. 仿某某网站模板thinkphp_7个免费PPT模板网站,远离撞P的尴尬
  11. 自定义标签之使用struts的valueStack取值
  12. oracle帐号永久生效,[Linux] alias永久生效
  13. c语言跑马灯循环三次停止,跑马灯代码 连续不间断的跑马灯的代码(js)
  14. 1月到12月 周一到周日 十二种颜色 用英语怎么说
  15. 分布式文件系统(Distributed File System,DFS)
  16. kali linux2021 安装pip
  17. 【管理篇 / 登录】❀ 03. USB线连接登录 ❀ FortiGate 防火墙
  18. wordpress网站文章内容页模板主题开发制作教程
  19. Java中的 分号 ;
  20. 【MariaDB】安装MariaDB,与MySQL并存

热门文章

  1. C#在WinForm开发中Label换行方法
  2. 一度智信:关于拼多多发货规则那些事
  3. 迅为RK3568开发板Buildroot系统功能评测
  4. 集成学习中的软投票和硬投票机制详解和代码实现
  5. ubuntu结束进程快捷键_4种强制关闭Ubuntu中无响应应用程序的方法
  6. web端开发规范开发规范_Web开发人员的规范工作
  7. 第六届全国学生“学宪法讲宪法“活动参赛指南
  8. java我的世界1 13_我的世界java1.16.4正式版最新下载
  9. ASP.NET 2.0中使用Gridview控件的高级技巧
  10. 使用scp拷贝文件到linux服务器