Настройка связки аккаунтов

Настроить авторизационный сервер

Убедитесь, что авторизационный сервер удовлетворяет требованиям Диалогов:

  • Работает в соответствии с RFC.
  • Обрабатывает обязательные параметры, аутентифицирует пользователей и генерирует авторизационный код code.
  • Когда пользователь аутентифицирован на сервере авторизации, сервер перенаправляет OAuth-приложение (приложение для Алисы) на URL https://social.yandex.net/broker/redirect (redirection endpoint). В параметрах запроса сервер передает авторизационный код code и другие параметры.
  • URL для получения токена умеет идентифицировать OAuth-приложение и генерировать OAuth-токен (опционально — также refresh-токен) для переданного кода авторизации.

    Длина ответа ограничена 5000 символами, длина OAuth-токена и refresh-токена — 2048 символами. Время жизни токенов (свойство expires_in) должно быть целым числом от 1 до 4 294 967 296.

Кроме собственного сервера авторизации, для аутентификации пользователей Яндекса вы можете использовать API Яндекс ID.

Использование refresh-токенов

Если используются refresh-токены, Диалоги обновляют токены доступа. Когда срок действия OAuth-токена истекает, Диалоги отправляют запрос на сервер авторизации.

Сервер авторизации должен отдать обновленный токен за пять секунд. Если сервер не ответит, Диалоги отправят повторный запрос. Если через пять секунд от сервера снова не придет ответ, связка аккаунтов разорвется. Пользователю потребуется повторно связать аккаунты.

Подробнее о refresh-токенах см. в спецификации к OAuth 2.0.

Создать связку аккаунтов в консоли разработчика

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

Описание полей:

  • Идентификатор приложения — идентификатор OAuth-приложения на сервере авторизации (например, 4760187d41bc4b7799476b42b5103213).

  • Секрет приложения — пароль OAuth-приложения на сервере авторизации (например, f25bebr991ff419893db655428e4e1de).
  • URL авторизации — страница, на которой должен авторизоваться пользователь, чтобы разрешить навыку доступ к аккаунту (например, https://oauth-server.com/oauth/login).
  • URL для получения токена — адрес, куда следует отправить запрос с авторизационным кодом, чтобы получить OAuth-токен доступа (например, https://skill-example/token).
  • URL для обновления токена — адрес для обновления OAuth-токена (например, https://oauth-server.com/refresh).
  • Идентификатор группы действий — список разрешений, которые следует выдавать для запрашиваемых OAuth-токенов (например, для умного дома home:lights). Перечисляйте разрешения через &.