Google Assistant Smart Home:agentUserId定义可能不正确

问题描述 投票:0回答:1

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

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

有人见过类似的问题,我的理解不正确吗?

google-home google-smart-home smarthomeskill
1个回答
0
投票

agentUserId旨在成为智能家居平台上的用户帐户。 SHP用户'1234'可能有一个吸尘器和两个指示灯,但可以链接到多个Google帐户。

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

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

所以,是的解决方案是使用唯一的ID连接到该帐户。尽管未在代理ID中传递此信息,但已经存在一种通过授权系统进行此关联的机制。

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

© www.soinside.com 2019 - 2024. All rights reserved.