Когда использовать авторизацию в навыке
Связка аккаунтов позволяет навыку получить доступ к информации об устройствах пользователя на вашем сервисе и возможность управления ими.
Для запуска навыков умного дома всегда требуется связка аккаунтов. Пользователь не запустит навык, пока не свяжет аккаунт на Яндексе с аккаунтом в системе управления умным домом владельца навыка (чаще всего производителя устройств).
Что надо знать
-
К публикации допускаются только навыки, в которых авторизация пользователя происходит по протоколу OAuth 2.0 с помощью кодов авторизации (authorization code grant).
-
Авторизационный сервер может быть частью вашего сервера с данными умных устройств или самостоятельным сервисом.
Когда запрашивать авторизацию
В отличие от навыков общего типа, в навыках умного дома вам не требуется:
-
Продумывать, когда запрашивать авторизацию. Приложение Алисы сделает это до запуска навыка.
-
Проверять при обработке запросов, авторизован ли пользователь. Это делают Диалоги. Если пользователь выйдет из аккаунта — запросы к устройствам перестанут отправляться. Алиса снова попросит пользователя авторизоваться.
Пример
Например, чтобы управлять умными устройствами Aqara с помощью голоса, пользователь:
-
Скачивает приложение Aqara Home из Google Play или App Store.
-
Авторизуется в приложении, добавляет и настраивает умные устройства Aqara.
-
Открывает приложение Дом с Алисой и в правом верхнем углу нажимает .
-
Выбирает Устройство умного дома, а затем навык Aqara.
-
Нажимает кнопку Привязать к Яндексу, в результате чего будет переадресован на страницу авторизации приложения Aqara Home, которая была указана в настройках навыка в поле URL авторизации.
-
Авторизуется в приложении Aqara Home, используя аккаунт из пункта 2, и нажимает кнопку Продолжить, чтобы подтвердить доступ умного дома Яндекса к аккаунту Aqara.
В соответствии со спецификацией OAuth 2.0 происходит следующее:
- Сервер авторизации навыка Aqara вызывает URL перенаправления (redirect endpoint), в котором возвращается код подтверждения авторизации (authorization code grant).
- Сервер умного дома Яндекcа отправляет запрос на URL для получения токена, используя полученный код авторизации.
- Авторизационный сервер навыка Aqara передает умному дому Яндекса OAuth-токен пользователя.
Подробнее о том, как устроена авторизация в навыке, можно посмотреть здесь.
Когда пользователь нажимает кнопку Обновить список устройств, сервер умного дома Яндекса делает запрос к серверу навыка Aqara от имени пользователя, используя выданный OAuth-токен. Все устройства из приложения Aqara Home добавляются в список устройств в приложении Дом с Алисой.
Теперь пользователь может просто позвать Алису и попросить ее задвинуть шторы, выключить свет, сообщить о температуре и влажности в комнате.