Умный дом Google Assistant: определение agentUserId может быть неправильным - PullRequest
1 голос
/ 11 апреля 2020

Согласно документации Google Assistant для Smart Home, agentUserId, используемый в action.devices.QUERY, определяется как ' Отражает уникальный (и неизменный) идентификатор пользователя на платформе агента. Строка непрозрачна для Google, поэтому, если есть постоянная форма или изменяемая форма на стороне агента, используйте неизменяемую форму (например, номер счета, а не адрес электронной почты) '

Однако могут быть случаи если одно и то же устройство (с одним и тем же идентификатором пользователя агента) подключено к нескольким учетным записям Google Assistant, и в таких случаях может возникнуть запрос DISCONNECT, что приводит к прекращению состояния отчета для всех учетных записей. Решением будет добавление некоторого уникального идентификатора, соответствующего учетной записи Google Assistant, однако такая информация не доступна ни в одном запросе.

Кто-нибудь видел подобную проблему и мое понимание неверно?

1 Ответ

2 голосов
/ 13 апреля 2020

AgentUserId предназначен для учетной записи пользователя на платформе умного дома. Пользователь SHP «1234» может иметь вакуум и два индикатора, но может быть связан с несколькими учетными записями Google.

В процессе привязки учетной записи вы должны будете дать refre sh и токены доступа, чтобы разрешить для Google, чтобы иметь авторизованный контроль над этими устройствами. Если вы назначите уникальные токены доступа для каждой учетной записи Google, которая входит в систему, вы сможете определить, с какой учетной записи Google поступает запрос.

В этот момент, когда пользователь отключается, вы можете использовать доступ токен в заголовке запроса, чтобы связать его с определенной c учетной записью Google и отключить отчеты только для этой учетной записи, не затрагивая при этом другие учетные записи.

Итак, да, решение заключается в том, чтобы иметь уникальный идентификатор, подключающийся к учетной записи. , Хотя это не передается в идентификаторе агента, уже существует механизм для создания этой ассоциации через систему авторизации.

В качестве альтернативы, вы можете добавить ключ в agentUserId, ie. '1234-user@gmail.com'. Тем не менее, это может иметь непреднамеренные последствия в Home Graph. В многопользовательском доме вы можете увидеть дублирующиеся устройства, потому что у Google нет нужной информации для дедупликации.

...