Smart Home入门(1)
基于 AWS 平台部署的用于处理 Smart Home 请求的后端服务
1.说明
通过云云对接的方式,实现用户通过 Google Home App 里的 Google Assistant 功能控制与他账号绑定了的设备。
2.大致的实现方式
- 将 OAuth2 服务部署在了 ECS 里
- 使用运行环境为 Nodejs 的 Lambda 做逻辑处理, Lambda 的 trigger 为 API Gateway
- 在https://console.actions.google.com/里的
smarthomeaccountlinking
path 下配置 OAuth2 的clientID
,clientSecret
,Authorization URL
和Token URL
- 将 API Gateway 上 Lambda 对外的访问地址配置到https://console.actions.google.com/里的
actions/smarthome/
path 下的Fulfillment URL
- 在 API Gateway 上加入 Authorizer 功能用来鉴定
Access Token
是否有效,有效再去触发之后的业务 Lambda
例子:Authorization URL
:https://{your_domain}/oauth2/authorize
Token URL
:https://{your_domain}/oauth2/token
Fulfillment URL
:https://xxxxxxxxx.execute-api.us-east-1.amazonaws.com/feature/google/smarthome
3.大致的结构图
4.学习路线
网址 | 内容 |
---|---|
1.https://developers.google.com/assistant/smarthome/overview 2.https://developers.google.com/assistant/smarthome/concepts | 1.Smart Home 简介 2.Smart Home 里的相关概念总结,这些概念对开发很重要,需要很清晰地理解,下面的链接会详细介绍各种概念 |
1.https://developers.google.com/assistant/smarthome/concepts/homegraph | 1.Home Graph 的概念 |
1.https://developers.google.com/assistant/smarthome/concepts/devices-traits 2.https://developers.google.com/assistant/smarthome/guides 3.https://developers.google.com/assistant/smarthome/traits | 1.Device Types 和 Device Traits 的简介 2.Google Smart Home 支持的 Device Types,以及每种 Device Type 推荐的 Device Traits(Reference 文档) 3.Google Smart Home 支持的 Device Traits(Reference 文档) |
1.https://developers.google.com/assistant/smarthome/concepts/intents | 1.Smart home intents 的概念,Google Smart Home 支持的四种 intents:SYNC、QUERY、EXECUTE、DISCONNECT |
1.https://developers.google.com/assistant/smarthome/concepts/fulfillment-authentication 2.https://developers.google.com/assistant/smarthome/concepts/local | 1.Fulfillment 的概念 2.Local Fulfillment/Local Home SDK 的介绍 |
1.https://developers.google.com/assistant/smarthome/concepts/account-linking 补充: 1.http://www.ruanyifeng.com/blog/2019/04/oauth_design.html 2.http://www.ruanyifeng.com/blog/2019/04/oauth-grant-types.html | 将我们平台的账户关联到 Google Home 的相关介绍,Google Smart Home 只接受 OAuth。 访问我们的服务(Cloud Fulfillment)都需要 Access Token,这个 Access Token 就是用户登录时,OAuth 服务器返回给 Google Smart Home 的 Token。当 Google Smart Home 接收请求,进行语言处理、通过 grammar 解析出 intent,并将 intent 发送给 Cloud Fulfillment 时,会携带这个 Access Token。 补充: 1.关于 OAuth 2.0 的介绍 2.OAuth 2.0 的 4 种方式 |