接入谷歌home/assistant/智能音箱

接入流程

登录谷歌cloud,创建并设置项目

1、登录谷歌cloud

2、创建项目

3、设置项目OAuth2.0鉴权凭证

创建客户端凭证

填写客户端名称(客户端密钥只在首次创建成功页面可以下载,记得下载)

登录开发者控制台,云到云设置

1、登录谷歌开发者控制台Developer

2、添加在google cloud创建的项目

3、云对云设置

云到云-->开发-->创建集成项目

  • **集成名称 :**必填

  • **设备类型:**必选,选择需要接入的设备类型

  • **应用图标:**比上传,分辨率144 x 144 像素

  • **OAuth 客户端 ID :**谷歌cloud创建项目客户端凭证的客户端id

  • **客户端密钥:**谷歌cloud创建项目客户端凭证的客户端密钥

  • **授权网址:**谷歌账号跟halo用户账号关联时,谷歌home App跳转到halo用户授权登录页(如:halo授权登录页,登录成功后就可以访问halo app接口相关接口)

  • **令牌网址:**用户刷新halo授权token

  • **云端执行网址:**谷歌home执行syncqueryexecutedisconnect意图的入口

halo服务实现OAuth2鉴权

实现OAuth2.0服务器谷歌官方文档

1、在授权代码流程中,需要两个端点

  • 授权 端点,用于向尚未登录的用户显示登录界面。授权端点还会创建一个短期授权代码,用于记录用户对所请求访问权限的同意情况。

  • 令牌交换 端点,负责处理两种类型的交换:

    1. 使用授权代码换取长期刷新令牌和短期访问令牌。当用户完成账号关联流程时,系统会进行此交换。

    2. 用长期有效的刷新令牌换取短期有效的访问令牌。 当 Google 需要新的访问令牌(因为之前的令牌已过期)时,就会发生此交换。

2、注意点

处理授权请求文档中提到,用户从谷歌home App --> 跳转到halo 授权登录页 --> 用户输入halo账号密码 --> 登录 --> 重定向用户浏览器

:::

从文档描述来看,好像是我们接口要重定向,其实,我们授权端点接口只需返回code即可,无需将用户浏览器重定向,返回code后,谷歌会自动处理跳转问题。

shell 复制代码
{
    "code": 200,
    "data": {
        "code": "ad4f10becfe24354a32e504e62b02087"
    }
}

:::

实现意图

我们halo服务需要实现谷歌home的syncqueryexecutedisconnect意图,详细查看官方文档实现意图。

控制设备:谷歌home --> 谷歌云 --> halo云平台 --> 处理意图(属性转换、控制设备)--> 意图处理结果返回谷歌云 --> 谷歌云返回给谷歌home

:::
主要工作量:

执行意图:谷歌云-->halo云,需要把谷歌云设备类型、设备特性(属性)转换为halo云设备类型、设备特性(属性)

返回意图:halo云-->谷歌云,需要把halo云设备类型、设备特性(属性)转换为姑姑云设备类型、设备特性(属性)

对接属性转换的时候,光看设备属性文档,是很难知道某设备某型号某属性值是什么,值需不需要进行转换数据之类的(比如色温灯的开/关、亮度、色温值属性id分别是什么,值是什么类型),**如何快速高效对接属性:**设备上电重置接入网关-->根据设备id查看该设备属性表device_attrs有哪些属性和值-->MQTTX订阅该网关上/下行消息-->在halo App控制设备-->查看MQTTX订阅消息+设备属性表属性值变化-->快速定位属性和属性值(如设置色温,MQTTX发送什么属性消息给网关,根据该属性id查询属性表该属性值的变化)

例如:设置D628-ZG设备色温,MQTTX订阅可以看到下发给网关的数据,其中属性id:ColTempMir,val:307,根据设备id查找属性表,属性id和值能对应上的,从而快速定位调整色温的属性id和值类型,不用在设备属性文档中低效来回往返查找还不确定是不是这个属性

:::

部署服务

当我们halo云实现了OAuth2.0+意图后,把服务部署到服务器,需要外网能访问,且是https,通过postman或apifox测试接口,没问题接着就是集成测试,测试谷歌home能否控制设备

测试

1、添加测试用户

测试用户添加登录谷歌cloud的账号(我添加其他谷歌账号A,测试时候在谷歌home登录A账号中找不到 **hzc-halo-dev100**项目,不清楚具体什么原因,添加登录谷歌cloud的账号到测试用户组,在谷歌home中也登录谷歌cloud账号,就能找到项目

2、安装谷歌应用

一台安卓手机,需要连接翻墙网络,安装谷歌play、谷歌浏览器、谷歌home、谷歌assistant助理

3、谷歌home登录谷歌账号

谷歌home登录谷歌账号(账号必须跟登录谷歌cloud创建项目的账号相同且账号已添加到测试用户组中

4、谷歌home关联应用

谷歌home关联在谷歌cloud创建的项目hzc-halo-dev,同步设备列表、控制设备

5、谷歌Assistant助理App控制设备

手机安装谷歌助理App-->打开谷歌App对谷歌助理进行常规设置-->打开谷歌助理App-->语音或者文字输入-->控制设备

6、谷歌智能音箱控制设备

重置谷歌智能音箱-->谷歌home绑定音箱-->绑定成功-->ok goole唤醒智能音箱-->打开灯-->智能音箱播报执行结果

:::

谷歌home绑定谷歌智能音箱类似于国内智能音箱绑定操作,如米家app绑定小爱智能音箱、天猫精灵app绑定天猫精灵

:::

相关推荐
崔庆才丨静觅5 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60616 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了6 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅6 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅6 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
七夜zippoe7 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
盟接之桥7 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
崔庆才丨静觅7 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment7 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅7 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端