admin管理员组文章数量:1609966
导航链接
(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
新加技能
其实这个地方就比较简单了,我们所有准备的东西都完事了之后,具体的流程信息如下图所示
首先你要进入阿里语音的开发者平台,给出如下链接地址https://open.bot.tmall/。
用淘宝账号登陆后,点击右上角的进入控制台
点击添加新技能
按照要求填写信息,这个是我的灯的信息
然后填写最重要的服务设置,服务器(二)也说了,这个是最重要的设置
授权连接指向你域名下的aligenies_authorize.php文件,Client ID 是让记住的添加的MySQL中的ID,Client Secret是在MySQL中添加的密码,Access Token URL用于指定域名下的aligenies_token.php文件,开发者网管地址,用于指定你域名下的aligenies_gate.php文件。到此我们所有的文件准备完成,配置完成,进行真机测试。
真机测试
点击测试验证界面,点击右侧的开启测试
点击后,然后再点击账户配置
然后点选yes进行授权
如果在这个阶段你点了账号配置,没有任何反应,可能是你在配置的过程中出现了问题,这个时候你可以使用F12查看错误信息,根据错误状态进行改正即可,争取后会出现如下所示界面,由于这个设备的信息都没更改,所以跟参考文章中差不多。
下面我总结一下我遇到的错误与解决方法。
错误1:Fatal error: Uncaught PDOException: could not find driver...
报错:由于无法找到数据库的驱动库
Fatal error: Uncaught PDOException: could not find driver in /var/www/html/oauth2-server-php/src/OAuth2/Storage/Pdo.php:67 Stack trace: #0 /var/www/html/oauth2-server-
php/src/OAuth2/Storage/Pdo.php(67): PDO->__construct('mysql:dbname=Ce...', 'root', '12345678', Array) #1 /var/www/html/server.php(14): OAuth2\Storage\Pdo->__construct(Array)
#2 /var/www/html/authorize.php(2): require_once('/var/www/html/s...') #3 {main} thrown in /var/www/html/oauth2-server-php/src/OAuth2/Storage/Pdo.php on line 67
解决:安装php的数据库驱动
rtplay@orangepipcplus:/etc$ sudo apt-get install php7.0-mysql
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
php7.0-mysql
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 106 kB of archives.
After this operation, 296 kB of additional disk space will be used.
Get:1 http://cdn-fastly.deb.debian/debian stretch/main armhf php7.0-mysql armhf 7.0.27-0+deb9u1 [106 kB]
Fetched 106 kB in 11s (9,260 B/s)
Selecting previously unselected package php7.0-mysql.
(Reading database ... 34669 files and directories currently installed.)
Preparing to unpack .../php7.0-mysql_7.0.27-0+deb9u1_armhf.deb ...
Unpacking php7.0-mysql (7.0.27-0+deb9u1) ...
Setting up php7.0-mysql (7.0.27-0+deb9u1) ...
Creating config file /etc/php/7.0/mods-available/mysqlnd.ini with new version
Creating config file /etc/php/7.0/mods-available/mysqli.ini with new version
Creating config file /etc/php/7.0/mods-available/pdo_mysql.ini with new version
Processing triggers for libapache2-mod-php7.0 (7.0.27-0+deb9u1) ...
报错2:Fatal error: Uncaught PDOException: SQLSTATE[HY000] [1698]...
报错:无法通过用户名和密码访问数据库
Fatal error: Uncaught PDOException: SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost' in /var/www/html/oauth2-server-php/src/OAuth2/Storage/Pdo.php:67 Stack
trace: #0 /var/www/html/oauth2-server-php/src/OAuth2/Storage/Pdo.php(67): PDO->__construct('mysql:dbname=Ce...', 'root', '12345678', Array) #1 /var/www/html/server.php(14):
OAuth2\Storage\Pdo->__construct(Array) #2 /var/www/html/authorize.php(2): require_once('/var/www/html/s...') #3 {main} thrown in /var/www/html/oauth2-server-
php/src/OAuth2/Storage/Pdo.php on line 67
解决:建议不要使用root用户,新建一个用户,并设置密码
新建用户
以root身份登录mysql
mysql -u root
创建一个用户带密码
CREATE USER 'tmalk'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'tmalk'@'localhost';
FLUSH PRIVILEGES;
绑定所有地址
在下列文件中修改
/etc/mysql/mariadb.conf.d/50-serverf
或/etc/mysql/mysql.conf.d/mysqldf
#bind-address = 127.0.0.1
退出mysql并重启服务器
exit
service mysql restart
错误3:Fatal error: Uncaught PDOException: SQLSTATE[HY000] [1045]...
你可能没有经历错误2,而是错误3,这里建议同错误2一样处理,或者单独处理错误3,错误3是由于没有设置密码导致的
报错:
Fatal error: Uncaught PDOException: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) in /var/www/html/oauth2-server-
php/src/OAuth2/Storage/Pdo.php:67 Stack trace: #0 /var/www/html/oauth2-server-php/src/OAuth2/Storage/Pdo.php(67): PDO->__construct('mysql:dbname=Ce...', 'root', '12345678',
Array) #1 /var/www/html/server.php(14): OAuth2\Storage\Pdo->__construct(Array) #2 /var/www/html/authorize.php(2): require_once('/var/www/html/s...') #3 {main} thrown in
/var/www/html/oauth2-server-php/src/OAuth2/Storage/Pdo.php on line 67
解决:
$sudo mysql -u root
[mysql] use mysql;
[mysql] SET PASSWORD FOR 'root'@'localhost' = PASSWORD('12345678');
[mysql] \q
$sudo service mysql restart
错误4:“3秒后返回开发者平台”
这里是我在2018年12月9日左右调试时发现的问题,这个问题特别的头大,因为只有在使用“新建窗口”时进行测试才会发生,我觉得这个是天猫精灵后台出了问题,而且好几天都没有改,这个效率也是醉了。
如果能正常刷出列表,恭喜你,距离成功已经很近了。
同时你会发现,你天猫精灵APP通账号目录下也会出现这个界面,如下图所示
这个时候你可以尝试使用语音控制你的天猫精灵,比如“天猫精灵,打开台灯”,如果天猫精灵响应你回答“正在为您打开台灯”,则证明协议对接完成。
最后
有人会说,你也没有真正的控制硬件啊,只不过在这里修改了个文件而已啊?
好吧,对于服务器来说只能看到文件,服务器名不会真正的看到硬件设备,看到的不过是数据库中的数据在变化。这个时候你可以自己去尝试将设备的网络访问你的域名,并在你的服务器上给一个设备的连接方式,随便是tcp还是udp,实现是http还是socket,只要你让你的设备访问到你的服务器就行了,然后就是让你的设备告诉你他的状态,服务器再把需要的状态给设备,这样就实现了控制。
而且也是由于我并没有实现这部分功能,所以就没有继续写,但是我觉得这些就已经够了。
版权声明:本文标题:(12)香橙派+apache2与php+天猫精灵=自建平台语音支持--天猫精灵对接7 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1728586360a1164957.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论