Авторизация и получение токена
Код авторизации и другие параметры интеграции
code
- это уникальный, одноразовый, временный ключ, который действует только 10 минут и с его помощью вам необходимо в течение этого времени получить
access_token
и
refresh_token
.
Для получения токенов вам также потребуются другие параметры, указанные в разделе «Автоматизации» → «API». Все эти параметры относятся к интеграции, созданной для вашего аккаунта, в который вы уже вошли. Это заранее сгенерированные Client id и Client secret (для каждого администратора компании) и указанный вами Redirect URI.
Обмен кода авторизации на access token и refresh token
Получив все параметры, вам необходимо сделать запрос на специальный адрес, описанный ниже. В ответ вы получите пару Access token и Refresh token.
Время жизни Access token - 2 часа. Дату и время создания токена, а также количество секундах, показывающее через сколько токен истечет, вы также получите в ответе.
Refresh token поможет вам автоматизировать получение нового Access 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 такой же, как при обмене кода авторизации, но с другими параметрами и значениями.
Запрос
|
||
---|---|---|
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": "refresh_token",
"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
}