Перейти к основному содержимому

Авторизация

Получение access токена

Чтобы начать работать с API пользователю с ролью “Администратор” необходимо сгенерировать авторизационные токены в личном кабинете. Токены нужны для выполнения запросов в API от лица их создателя. Для авторизации пользователя используется механизм access-токенов из протокола OAuth2.0.

После их генерации менеджер получит ссылку на токены в json-формате:

{
"name": "Интеграция с Битрикс24",
"access_token": "OSe5zGs-YU6pVuUOv1dSL2keqEvxAuxo3D888_tzRABX61KS6mB-JfbO8Y77C8hr",
"expires_in": 86400,
"refresh_token": "jHNGJFTZmvFDWhLM_7kI7T2wLKVevpcTg_Sw-33i_Mp5GT0gwbL2WRKekLbUG3Vd",
"refresh_token_expires_in": 10368000,
"token_type": "bearer",
"created_at": 1703259897344
}
ПараметрОписание
access_tokenТокен, используемый для запросов в API.
expires_inВремя жизни access_token в секундах с даты последнего обновления. По умолчанию 1 день.
refresh_tokenТокен, необходимый для обновления истёкшего access_token.
refresh_token_expires_inВремя жизни refresh_token в секундах с даты последнего обновления. По умолчанию 120 дней.
nameНазвание токена, указанного при создании в личном кабинете.
token_typeТип токена. В данный момент может быть только “bearer”.
created_atВремя создания токена.

Ссылка перестанет работать через 30 дней после её генерации или после первого обновления полученных по ней токенов.

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

При обращении к API необходимо использовать полученный access_token, передавая его в заголовке в формате Authorization: Bearer ACCESS_TOKEN.

Токен можно проверить, сделав GET-запрос на /auth_check:

curl -i "https://api.talantix.ru/auth_check"
-H "Authorization: Bearer OSe5zGs-YU6pVuUOv1dSL2keqEvxAuxo3D888_tzRABX61KS6mB-JfbO8Y77C8hr"

При успешном выполнении запрос вернёт 204 HTTP код.

примечание

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

Обновление access токена

Время жизни access_token ограничено и после его окончания любой запрос к API будет возвращать 401 HTTP код с телом ответа:

{
"type": "invalid_token",
"detail": "token_expired"
}

В этом случае необходимо получить новую пару access и refresh токенов через POST-запрос на oauth/token:

ПараметрТипЗначение
Content-TypeHeader"application/x-www-form-urlencoded".
grant_typeBody"refresh_token".
refresh_tokenBodyТекущий валидный refresh_token.

Пример запроса:

curl -X POST "https://api.talantix.ru/oauth/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=refresh_token&refresh_token=jHNGJFTZmvFDWhLM_7kI7T2wLKVevpcTg_Sw-33i_Mp5GT0gwbL2WRKekLbUG3Vd"

Ответ:

{
"name": "test",
"access_token": "8ns6bCq5_nhi1wlKHjWyQRyHIjjY6Xm3rrLdhiIIZkUH4bpluJaTybYMjhqTqoUW",
"expires_in": 86400,
"refresh_token": "clQ1bOBC9wCLpL-DCPHfwfvtSdKZtHwdaesrPFnH7mt_CtXYFWrJizk-c9gY2CqQ",
"refresh_token_expires_in": 10368000,
"token_type": "bearer"
}

Значения идентичны описанию параметров при получении токена.

Ошибки обновления access токена

Ошибки возвращаются в json формате.

HTTP codeerrorerror_description
400invalid_grantAccess token is not expired.
400invalid_grantRefresh token is invalid, expired or revoked.
400unsupported_grant_typeThe authorization grant type is not supported by the authorization server.

Пример:

{
"error": "invalid_grant",
"error_description": "Access token is not expired"
}
примечание

access_token можно обновить только если его срок жизни истёк. При попытке обновить ещё активный access_token сервис ответит описанным выше кодом ошибки.

warning

Время жизни refresh_token ограничено параметром refresh_token_expires_in. После его истечения не получится обновить access и refresh токены. В таком случае нужно создать новую пару токенов в личном кабинете.