Авторизация и получение токена

Код авторизации и другие параметры интеграции

Authorization code - это уникальный, одноразовый, временный ключ, который действует только 10 минут и с его помощью вам необходимо в течение этого времени получить Access token и Refresh token.

Для получения токенов вам также потребуются другие параметры, указанные в разделе «Для разработчиков» профиля вашей компании. Все эти параметры относятся к интеграции, созданной для вашего аккаунта, в который вы уже вошли. Это заранее сгенерированные Client id и Client secret (для каждого администратора компании) и указанный вами Redirect URI.

Обмен кода авторизации на access token и refresh token

Получив все параметры, вам необходимо сделать запрос на специальный адрес, описанный ниже. В ответ вы получите пару Access token и Refresh token.

Время жизни Access token - 2 часа. Дату и время создания токена, а также количество секундах, показывающее через сколько токен истечет, вы также получите в ответе.

Refresh token поможет вам автоматизировать получение нового Access token (убрать необходимость получения каждый раз нового кода авторизации в интерфейсе). Подробнее об этом в следующем параграфе.

post /oauth/token получение токена доступа (по коду авторизации)
Запрос
client_id string Идентификатор интеграции
client_secret string Секрет интеграции
grant_type string Тип авторизационных данных (для кода авторизации – authorization_code)
code string Код авторизации
redirect_uri string Redirect URI, указанный в настройках интеграции
Ответ (2**)
access_token string Access токен
token_type string Тип токена (Bearer)
expires_in integer Время в секундах, показывающее через сколько Access токен истечет
refresh_token string Refresh токен
scope string Уровень доступа (на текущий момент только полный - all)
created_at timestamp Дата и время в timestamp, показывающие момент создания Access токен
Ошибки (4**)
error string Название ошибки (invalid_grant, invalid_client, unsupported_grant_type и др.)
error_description string Текстовое описание ошибки
{
  "client_id": "l0uiGWNSgU0GDob0HUHpoYimD8XtySlARPlv_GSZOZw",
  "client_secret": "wgvDFxMif16bP8b8bEtQ5N8SVjMVNcRH-T8VGtySIZE",
  "grant_type": "authorization_code",
  "code": "0mqWDT-DIHrSQbNGg4f9isLwoZtWdb0gJX9DVpxa9Xk",
  "redirect_uri": "https://example.com"
}
{
  "access_token": "h2ItLu4zouvTq2bIcK_wHzA7p0ekKz5MjS1ffiz6COo",
  "token_type": "Bearer",
  "expires_in": 7200,
  "refresh_token": "wUbFAuExtWkx2rQEQ2o2PoT8Ouq9OPElR477A18NEaA",
  "scope": "all",
  "created_at": 1587718584
}

Получение нового Access token по его истечении

При обмене кода авторизации на Access token вы получили и Refresh token. С его помощью вы можете получить новый Access token и продолжить работу с API.

Время жизни Refresh token - 3 месяца. Если у вас не осталось ни одного активного Refresh token, то вам потребуется заново открыть раздел «Для разработчиков» в профиле компании, получить новый код авторизации и пройти процесс обмена кода авторизации на Access token и Refresh token.

Refresh token можно использовать только один раз. После отправки его в метод и получения новой пары Access token и Refresh token старый Refresh token становится не актуальным.

Запрос на обновление Access token по Refresh token такой же, как при обмене кода авторизации, но с другими параметрами и значениями.

post /oauth/token получение токена доступа (по Refresh токену)
Запрос
client_id string Идентификатор интеграции
client_secret string Секрет интеграции
grant_type string Тип авторизационных данных (для Refresh токена – refresh_token)
refresh_token string Текущий Refresh токен
redirect_uri string Redirect URI, указанный в настройках интеграции
Ответ (2**)
access_token string Access токен
token_type string Тип токена (Bearer)
expires_in integer Время в секундах, показывающее через сколько Access токен истечет
refresh_token string Refresh токен
scope string Уровень доступа (на текущий момент только полный - all)
created_at timestamp Дата и время в timestamp, показывающие момент создания Access токен
Ошибки (4**)
error string Название ошибки (invalid_grant, invalid_client, unsupported_grant_type и др.)
error_description string Текстовое описание ошибки
{
  "client_id": "l0uiGWNSgU0GDob0HUHpoYimD8XtySlARPlv_GSZOZw",
  "client_secret": "wgvDFxMif16bP8b8bEtQ5N8SVjMVNcRH-T8VGtySIZE",
  "grant_type": "authorization_code",
  "refresh_token": "0mqWDT-DIHrSQbNGg4f9isLwoZtWdb0gJX9DVpxa9Xk",
  "redirect_uri": "https://example.com"
}
{
  "access_token": "h2ItLu4zouvTq2bIcK_wHzA7p0ekKz5MjS1ffiz6COo",
  "token_type": "Bearer",
  "expires_in": 7200,
  "refresh_token": "wUbFAuExtWkx2rQEQ2o2PoT8Ouq9OPElR477A18NEaA",
  "scope": "all",
  "created_at": 1587718584
}