接入流程
登录谷歌 Cloud,创建并设置项目
1、登录谷歌 Cloud
2、创建项目
![图片]
3、设置项目 OAuth2.0 鉴权凭证
![图片]
创建客户端凭证: ![图片]
填写客户端名称(客户端密钥只在首次创建成功页面可以下载,记得下载)。 ![图片]
登录开发者控制台,云到云设置
- 登录 Google 开发者控制台。
- 添加在 Google Cloud 创建的项目。 ![图片]
- 云对云设置:云到云 -> 开发 -> 创建集成项目。 ![图片] ![图片]
- 集成名称:必填
- 设备类型:必选,选择需要接入的设备类型
- 应用图标:需上传,分辨率 144 x 144 像素
- OAuth 客户端 ID:Google Cloud 创建项目客户端凭证的客户端 ID
- 客户端密钥:Google Cloud 创建项目客户端凭证的客户端密钥
- 授权网址:谷歌账号跟 Halo 用户账号关联时,Google Home App 跳转到 Halo 用户授权登录页(如 Halo 授权登录页,登录成功后就可以访问 Halo App 接口相关接口)
- 令牌网址:用户刷新 Halo 授权 token
- 云端执行网址:Google Home 执行
sync、query、execute、disconnect意图的入口
Halo 服务实现 OAuth2 鉴权
参考 实现 OAuth2.0 服务器 官方文档。
1、在授权代码流程中,需要两个端点
- 授权端点,用于向尚未登录的用户显示登录界面。授权端点还会创建一个短期授权代码,用于记录用户对所请求访问权限的同意情况。
- 令牌交换端点,负责处理两种类型的交换:
- 使用授权代码换取长期刷新令牌和短期访问令牌。当用户完成账号关联流程时,系统会进行此交换。
- 用长期有效的刷新令牌换取短期有效的访问令牌。当 Google 需要新的访问令牌(因为之前的令牌已过期)时,就会发生此交换。
2、注意点
在处理授权请求文档中提到,用户从 Google Home App --> 跳转到 Halo 授权登录页 --> 用户输入 Halo 账号密码 --> 登录 --> 重定向用户浏览器。
![图片]
从文档描述来看,好像是我们接口要重定向,其实,我们授权端点接口只需返回 code 即可,无需将用户浏览器重定向,返回 code 后,Google 会自动处理跳转问题。
{"code":200

