1

根据智能家居的 Google 助理文档,action.devices.QUERY 中使用的 agentUserId 被定义为 '反映代理平台上唯一(且不可变)的用户 ID。该字符串对 Google 是不透明的,因此如果代理端存在不可变表单与可变表单,请使用不可变表单(例如帐号而不是电子邮件) '

但是,在某些情况下,同一设备(具有相同的代理用户 ID)连接到多个 Google 助理帐户,在这种情况下,断开连接请求可能会导致所有帐户的报告状态停止。解决方案是添加一些与 Google Assistant 帐户相对应的唯一 ID,但是此类信息在任何请求中均不可用。

有没有人看到类似的问题,我的理解不正确?

4

1 回答 1

3

agentUserId 是智能家居平台上的用户账号。SHP 用户“1234”可能有一个真空吸尘器和两个灯,但可以链接到多个 Google 帐户。

在帐户关联过程中,您需要提供刷新和访问令牌,以允许 Google 对这些设备进行授权控制。如果您为每个登录的 Google 帐户分配唯一的访问令牌,您就可以确定请求来自哪个 Google 帐户。

此时,一旦用户断开连接,您可以使用请求标头中的访问令牌将其与特定 Google 帐户相关联,并且仅禁用该帐户的报告,而不影响其他帐户。

所以,是的,解决方案是让一个唯一的 ID 连接到该帐户。虽然这没有在代理 ID 中传递,但已经有一种机制可以通过授权系统进行这种关联。

或者,您可以在 agentUserId 中附加一个密钥,即。'1234-user@gmail.com'。但是,这可能会对 Home Graph 产生意想不到的影响。在多用户家庭中,您最终可能会看到设备重复,因为 Google 没有正确的信息来进行重复数据删除。

于 2020-04-13T15:42:58.023 回答