Google 多个 google 用户使用同一帐户时的智能家居操作

Google Smart Home Action when multiple google users uses the same account

我们为我们的云解决方案实施了智能家居操作,使我们能够控制我们的恒温器。此外,报告状态功能已实现,但在下一个案例中我们遇到了麻烦:

案例:

UserA 使用 Google 帐户登录 Google Home 应用 userA@gmail.com 通过我们的智能操作与帐户 user@ourcompany.com 进行链接过程(授权)-> 所有设备都正确同步到他

UserB 使用 Google 帐户登录 Google Home 应用 anotherUserB@gmail.com 通过我们的智能操作使用与 UserA 相同的帐户执行链接过程(授权):user@ourcompany.com ->所有设备也 正确同步给他。

在我们的后端,两次被触发SYNC请求用户user@ourcompany.com 因为他们都使用相同的帐户进行链接。 SYNC 请求被触发后,我们开始发送 Google Report State 事件。目前这一步,一切正常

但是,例如,如果 UserA 取消链接他的帐户 -> Google 发送 DISCONNECT 意图并且原样在 documentation 中说我们应该停止发送 Report State 事件。这里有一个问题:UserB 仍然有 user@ourcompany.com 的链接帐户,如果我们停止发送报告状态事件,userB 将收到不正确的数据。

遇到这种情况该怎么办?如何正确处理?我们什么时候应该停止发送报告状态事件?

当每个 Google 用户连接到 OurCompany 帐户时,您应该为他们分配一个唯一的访问令牌和刷新令牌。根据需要,您应该按照 OAuth 标准流程使用刷新令牌更新访问令牌。

发送 DISCONNECT 意图时,您应该使用来自该请求的请求访问令牌删除该访问令牌并刷新令牌。

您可以将其视为具有一系列有效刷新和访问令牌的数组。当你删除一个时,数组中可能还有第二个。一旦没有剩余令牌,您就可以停止报告状态。