Intent

智能家居 intent 是简单的消息传递对象,用于描述 要执行什么smart home操作,例如开灯或 将音频投射到音响系统。

所有 smart home intent 都包含在 action.devices 命名空间,您必须为它们提供执行方式。任何时候 Google Assistant 会向执行方式(用户的 第三方 OAuth 2 访问令牌在 Authorization 标头中传递。

以下是受支持的 smart home intent:

同步

action.devices.SYNC intent 用于请求 用户已连接且位于的 smart home 台设备 资源。

当用户使用 Google Home app (GHA) 设置设备时,他们也会 进行身份验证然后, Assistant 会收到一个 OAuth2 令牌。此时, Assistant 将一个 action.devices.SYNC intent 发送到您的 执行方式,以从该执行方式中检索用户设备和功能的初始列表 基础架构

<ph type="x-smartling-placeholder">
</ph> 下图显示了 Google 基础架构与合作伙伴基础架构之间的互动。Google 基础架构中有一个可供 Google 助理客户端应用使用的合作伙伴列表,该列表随后会流向合作伙伴基础架构以完成 OAuth 身份验证。合作伙伴端的 OAuth 身份验证包括合作伙伴设置 WebView、OAuth WebView、可选设置和条款,以及合作伙伴云服务。然后,合作伙伴基础架构会将 OAuth 凭据返回给 Google 助理客户端应用。合作伙伴云服务会向 Google 助理服务发送可用的设备和功能,然后这类服务会在 Home Graph 中存储这些信息。
图 1:Google 与合作伙伴之间的互动 基础架构

为避免解除关联并重新关联用户账号,您可以发送请求同步 发送至 Assistant。这会发送 action.devices.SYNC intent 您的执行方式,以同步设备和功能列表。请参阅 实现请求同步 信息。

<ph type="x-smartling-placeholder">
</ph> SYNC intent 的流程图
图 2:SYNC intent

在设置本地执行方式期间, Local Home 平台会检查SYNC来自您的 smart home Action 的云执行方式。如需详细了解 修改 SYNC 响应以支持本地执行方式,请参阅 在云执行方式中更新 SYNC 响应

查询

action.devices.QUERY intent 用于查询当前状态 共 smart home 台设备。

当用户查询设备状态时,为了回答以下问题: Hey Google,厨房里开了哪些灯? Assistant 将一个 action.devices.QUERY intent 发送到您的 fulfillment。

<ph type="x-smartling-placeholder">
</ph> QUERY intent 的流程图
图 3:QUERY intent

为了提供最佳用户体验,您应该实现 Report State(报告状态)以主动报告 用户设备的当前状态 Google Home Graph。例如,这可以 Assistant 知道用户是否使用 实体灯开关

<ph type="x-smartling-placeholder">
</ph> 使用报告状态报告设备状态
图 4:报告设备状态

执行

action.devices.EXECUTE intent 用于提供命令 在 smart home 台设备上执行。

当用户使用 Assistant 向设备发送命令时,您的 fulfillment 收到您执行的 action.devices.EXECUTE intent, 说明了操作以及要操作的设备。用户可以执行操作 在设备上说出“Hey Google,打开客厅的灯”这样的指令。

<ph type="x-smartling-placeholder">
</ph> EXECUTE intent 的流程图
图 5:EXECUTE intent

断开连接

会触发 action.devices.DISCONNECT intent 来通知您 当用户解除应用账号与 Assistant 的关联时触发。 收到 action.devices.DISCONNECT intent 后,您不应报告 状态