『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 29539|回复: 48

[智能音箱] 群晖搭建环境让天猫精灵接入HA(粗制滥造版)

  [复制链接]

1

主题

43

帖子

281

积分

论坛分享达人

积分
281
金钱
238
HASS币
0
发表于 2017-12-14 17:17:33 | 显示全部楼层 |阅读模式
本帖最后由 277693801 于 2017-12-31 17:33 编辑

之前各位大佬的方案要撸的代码比较多,我们使用群晖来搭建环境可省不少事,有群晖的童鞋可以参考。前提条件是
你有一台群晖
你可以通过域名公网访问到你的群晖

1.打开家庭目录服务
登陆群晖,点击控制面板-用户账号-高级设置-勾选家庭目录。
1.png

                               
登录/注册后可看大图

2.打开web服务
点击控制面板-web服务-勾选启动web station和启动个人网站还有启动web服务的https连接(等下我们要导入证书让我们搭建的网站可以https协议访问)

                               
登录/注册后可看大图


2.png
3.导入证书
点击安全性-证书-导入证书-选择你申请的证书(如何申请下载证书请查看其他大佬的教程)
3.png

                               
登录/注册后可看大图

                               
登录/注册后可看大图

以.key 结尾的是密钥  另外两个crt是证书 一般1_root_bundle.crt这种命名的是中间证书,不要选错了,不然无法添加。

4.确认可以以https协议访问到Web Station
做完以上几步打开浏览器输入
http://群晖的ip
如果看到这个说明已经开启了Web Station(就是web服务器)

                               
登录/注册后可看大图

6.png
再输入
https://你群晖的外网域名(当然这里要你已经设置好域名解析了)
如果同样能看到这个并且地址栏为绿色的https那说明证书也已经导入成功并且绑定好了你的域名。

                               
登录/注册后可看大图


                               
登录/注册后可看大图

8.png
6.png
5.安装mariadb数据库(mysql的分支和mysql一样用)
点击套件中心-安装mariadb数据库
10.png

                               
登录/注册后可看大图

就是图上那个海豹(可能是海狗吧)图标的啦

6.安装phpmyadmin套件用于管理mariadb数据库
点击套件中心-安装phpmyadmin
11.png

                               
登录/注册后可看大图

就是那艘帆船啦


7.打开phpmyadmin套件创建数据库和表

                               
登录/注册后可看大图

先登陆用户名为root 密码默认为空

                               
登录/注册后可看大图

12.png
13.png

进入之后点击左边的new
14.png

                               
登录/注册后可看大图


然后在右边输入数据库的名称比如oauth2_db 然后点击创建 ,这时候数据库就创建好了。
15.png

                               
登录/注册后可看大图
下一部我们要添加表,先点击左边你刚刚创建的oauth2_db数据库,然后在右边点击sql
16.png


粘贴以下代码,点击执行。(这段sql代码就是创建几张oauth2授权协议要用到的表摘抄这位大佬的https://bbs.hassbian.com/thread-1862-1-1.html
CREATE TABLE oauth_clients ( client_id VARCHAR(80) NOT NULL, client_secret VARCHAR(80) NOT NULL, redirect_uri VARCHAR(2000)  NOT NULL, CONSTRAINT client_id_pk PRIMARY KEY (client_id));CREATE TABLE oauth_access_tokens(access_token VARCHAR(40) NOT NULL, client_id VARCHAR(80) NOT NULL, user_id VARCHAR(255), expires TIMESTAMPNOT NULL,scope VARCHAR(2000), CONSTRAINT access_token_pk PRIMARY KEY (access_token));CREATE TABLEoauth_authorization_codes (authorization_code VARCHAR(40) NOT NULL, client_id VARCHAR(80) NOT NULL, user_id VARCHAR(255), redirect_uri VARCHAR(2000) NOT NULL, expires TIMESTAMP NOT NULL, scope VARCHAR(2000), CONSTRAINT auth_code_pk PRIMARY KEY (authorization_code));CREATE TABLE oauth_refresh_tokens ( refresh_token VARCHAR(40) NOT NULL, client_id VARCHAR(80) NOT NULL, user_id VARCHAR(255), expires TIMESTAMP NOT NULL, scope VARCHAR(2000), CONSTRAINT refresh_token_pk PRIMARY KEY (refresh_token));CREATE TABLE oauth_users(username VARCHAR(255) NOT NULL, password VARCHAR(2000), first_name VARCHAR(255), last_name VARCHAR(255), CONSTRAINT username_pk PRIMARY KEY (username));

执行完这个之后建议大家再执行下这句代码(这个sql语句的意思是创建oauth_scopes表,之前我按大佬的代码执行php运行起来来后报了个没有找到oauth_scopes表的错误,所以我加上了这个表)

CREATE TABLE IF NOT EXISTS `oauth_scopes` ( `scope` text, `is_default` tinyint(1) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


然后再新建账号和密码(XXXXXXclientid、XXXXXXsecret自己随便设,要记住后面填到天猫开放平台里)

INSERT INTO oauth_clients (client_id, client_secret, redirect_uri) VALUES ("XXXXXXclientid", "XXXXXXsecret","https://open.bot.tmall.com/oauth/callback");


到此数据库的准备工作就做完了


8.将php页面放到群晖的web服务器中。
下载[url=]www.zip[/url]

解压压缩包中的文件并且修改几个php文件参考这位大佬的https://bbs.hassbian.com/forum.p ... =%E5%A4%A9%E7%8C%AB
修改完后将这些文件放到web文件夹中
17.png

                               
登录/注册后可看大图

这个时候你就可以通过https://你的域名/xxx.php 访问到php页面了。

9.配置天猫精灵
大家参考这个帖子的配置就行了
https://bbs.hassbian.com/forum.p ... =%E5%A4%A9%E7%8C%AB

因为记不清楚哪部分内容分别参考了哪个大佬的我就不贴原帖了,再次向各位大佬表示感谢。
有些部分很容易出问题有编程基础的其实可以自己解决,这个过程其实就是搭建一个开发环境,可以使用mysql数据库甚至sqlserver,开发语言可以是php,也可以是java .net 但是没接触过可能就比较难了。因为群晖提供了很多套件,并且有图形管理页面所以可以比较方便的搭建一个网站大家可以按照上面的步骤试试。中间有些步骤可能不是特别详细,但总体是这个思路,大家可能会踩坑,欢迎大家讨论(反正你问我我也不一定知道)。



第一次发帖好累 ,不会用。




www.zip

99.04 KB, 下载次数: 176

回复

使用道具 举报

123

主题

4661

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16410
金钱
11664
HASS币
45
发表于 2017-12-14 20:05:02 | 显示全部楼层
等待补图!权限先加上!
回复

使用道具 举报

0

主题

40

帖子

118

积分

注册会员

Rank: 2

积分
118
金钱
78
HASS币
0
发表于 2017-12-15 07:56:24 | 显示全部楼层
学习了,谢谢分享
回复

使用道具 举报

0

主题

103

帖子

1029

积分

论坛积极会员

积分
1029
金钱
926
HASS币
0
发表于 2017-12-15 10:20:56 | 显示全部楼层
有群晖,好期待详细点的教程传授小白
回复

使用道具 举报

1

主题

14

帖子

54

积分

注册会员

Rank: 2

积分
54
金钱
40
HASS币
0
发表于 2017-12-15 16:36:21 | 显示全部楼层
这个需要oauth2接入认证吗?
回复

使用道具 举报

1

主题

122

帖子

1671

积分

论坛积极会员

积分
1671
金钱
1549
HASS币
0
发表于 2017-12-15 21:34:29 | 显示全部楼层
不明觉厉 !!
回复

使用道具 举报

1

主题

8

帖子

43

积分

新手上路

Rank: 1

积分
43
金钱
35
HASS币
0
发表于 2017-12-16 01:05:43 | 显示全部楼层
这个不错,到时候正好用上
回复

使用道具 举报

2

主题

106

帖子

585

积分

高级会员

Rank: 4

积分
585
金钱
479
HASS币
0
发表于 2017-12-19 23:44:49 | 显示全部楼层
我操作到你这个教程的最后一步了,那个真机测试的,出现的界面就和你截图这个一样,这个是怎么回事啊
Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in /volume1/web/oauth2-server-php/src/OAuth2/Storage/Pdo.php:67 Stack trace: #0 /volume1/web/oauth2-server-php/src/OAuth2/Storage/Pdo.php(67): PDO->__construct('mysql:dbname=tm...', 'root', '', Array) #1 /volume1/web/server.php(14): OAuth2\Storage\Pdo->__construct(Array) #2 /volume1/web/authorize.php(2): require_once('/volume1/web/se...') #3 {main} thrown in /volume1/web/oauth2-server-php/src/OAuth2/Storage/Pdo.php on line 67
回复

使用道具 举报

17

主题

335

帖子

2545

积分

金牌会员

Rank: 6Rank: 6

积分
2545
金钱
2210
HASS币
0
发表于 2017-12-20 12:01:19 | 显示全部楼层
这个教程好啊。。。刚好我有群晖一台
回复

使用道具 举报

1

主题

43

帖子

281

积分

论坛分享达人

积分
281
金钱
238
HASS币
0
 楼主| 发表于 2017-12-20 18:48:39 来自手机 | 显示全部楼层
aj11891 发表于 2017-12-19 23:44
我操作到你这个教程的最后一步了,那个真机测试的,出现的界面就和你截图这个一样,这个是怎么回事啊
Fatal ...

在数据库执行这段代码 CREATE TABLE IF NOT EXISTS `oauth_scopes` ( `scope` text, `is_default` tinyint(1) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-23 18:51 , Processed in 0.083401 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表