Smart Home入门(1)

基于 AWS 平台部署的用于处理 Smart Home 请求的后端服务

1.说明

通过云云对接的方式,实现用户通过 Google Home App 里的 Google Assistant 功能控制与他账号绑定了的设备。

2.大致的实现方式

  1. 将 OAuth2 服务部署在了 ECS 里
  2. 使用运行环境为 Nodejs 的 Lambda 做逻辑处理, Lambda 的 trigger 为 API Gateway
  3. https://console.actions.google.com/open in new window里的smarthomeaccountlinkingpath 下配置 OAuth2 的clientID, clientSecret, Authorization URLToken URL
  4. 将 API Gateway 上 Lambda 对外的访问地址配置到https://console.actions.google.com/open in new window里的actions/smarthome/path 下的Fulfillment URL
  5. 在 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.大致的结构图

1

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/homegraph1.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/intents1.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 种方式