Когда использовать авторизацию в навыке

Связка аккаунтов позволяет навыку получить доступ к информации об устройствах пользователя на вашем сервисе и возможность управления ими.

Для запуска навыков умного дома всегда требуется связка аккаунтов. Пользователь не запустит навык, пока не свяжет аккаунт на Яндексе с аккаунтом в системе управления умным домом владельца навыка (чаще всего производителя устройств).

Что надо знать

  • К публикации допускаются только навыки, в которых авторизация пользователя происходит по протоколу OAuth 2.0 с помощью кодов авторизации (authorization code grant).

  • Авторизационный сервер может быть частью вашего сервера с данными умных устройств или самостоятельным сервисом.

Когда запрашивать авторизацию

В отличие от навыков общего типа, в навыках умного дома вам не требуется:

  • Продумывать, когда запрашивать авторизацию. Приложение Алисы сделает это до запуска навыка.

  • Проверять при обработке запросов, авторизован ли пользователь. Это делают Диалоги. Если пользователь выйдет из аккаунта — запросы к устройствам перестанут отправляться. Алиса снова попросит пользователя авторизоваться.

Пример

Например, чтобы управлять умными устройствами Aqara с помощью голоса, пользователь:

  1. Скачивает приложение Aqara Home из Google Play или App Store.

  2. Авторизуется в приложении, добавляет и настраивает умные устройства Aqara.

    Экран управления домом в приложении Aqara Home

    Экран добавления устройства в приложении Aqara Home

  3. Открывает приложение Дом с Алисой и в правом верхнем углу нажимает plusCreated with Sketch..

  4. Выбирает Устройство умного дома, а затем навык Aqara.

  5. Нажимает кнопку Привязать к Яндексу, в результате чего будет переадресован на страницу авторизации приложения Aqara Home, которая была указана в настройках навыка в поле URL авторизации.

    Экран привязки аккаунта Aqara к Яндексу

    Экран авторизации в приложении Aqara Home

  6. Авторизуется в приложении Aqara Home, используя аккаунт из пункта 2, и нажимает кнопку Продолжить, чтобы подтвердить доступ умного дома Яндекса к аккаунту Aqara.

    Экран подтверждения доступа к аккаунту Aqara

    В соответствии со спецификацией OAuth 2.0 происходит следующее:

    1. Сервер авторизации навыка Aqara вызывает URL перенаправления (redirect endpoint), в котором возвращается код подтверждения авторизации (authorization code grant).
    2. Сервер умного дома Яндекcа отправляет запрос на URL для получения токена, используя полученный код авторизации.
    3. Авторизационный сервер навыка Aqara передает умному дому Яндекса OAuth-токен пользователя.

    Подробнее о том, как устроена авторизация в навыке, можно посмотреть здесь.

Когда пользователь нажимает кнопку Обновить список устройств, сервер умного дома Яндекса делает запрос к серверу навыка Aqara от имени пользователя, используя выданный OAuth-токен. Все устройства из приложения Aqara Home добавляются в список устройств в приложении  Дом с Алисой.

Теперь пользователь может просто позвать Алису и попросить ее задвинуть шторы, выключить свет, сообщить о температуре и влажности в комнате.

Полезные ссылки