【问题标题】:Google Assistant Smart Home : agentUserId definition may be incorrectGoogle 智能助理:agentUserId 定义可能不正确
【发布时间】:2020-04-10 21:17:04
【问题描述】:

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

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

有没有人看到过类似的问题,我的理解有误吗?

【问题讨论】:

    标签: google-home google-smart-home smarthomeskill


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 访问令牌不断变化,它们完全由不同的系统管理。实施另一个服务来跟踪此类令牌更改似乎并不容易,并且将解决该问题。发送连接 Google 帐户的唯一 ID 是否有任何缺点?如果没有,我们可以将其添加到请求中吗?
    • 缺点是在多人环境中您最终会得到重复的项目。如果我和我的室友已将服务连接到我们的 Google 帐户,任何共享设备(如智能扬声器)都会认为我们每个人都有独特的设备。
    • 连接 Google 帐户的唯一 ID 仅用于 DISCONNECT 意图并用于实际识别设备。设备识别仍然可以继续使用代理用户 ID。
    • 设备 ID 相对于代理用户 ID 是唯一的。如果每个 Google 帐户都有一个唯一的代理用户 ID,那么每个帐户都会获得唯一的设备。
    • 我指的是可以在每个请求中传递的附加 Google 帐户标识 ID(现有代理用户 ID 和设备 ID 可能不会更改)。控制设备、报告状态等仍将继续使用代理用户 ID 和设备 ID。
    猜你喜欢
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-28
    相关资源
    最近更新 更多