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


   

Токен – это временный ключ к требуемому сервису, полученый приложением через сервис авторизации. Токен говорит о том, что приложение уже прошло авторизацию и имеет право доступа к выбранному сервису. Токены живут ограниченное время, но с каждым успешным запросом (или даже запросом, не прошедшим квотирование) пролонгируются.

Поэтому вместе с любым запросом к Merchants API необходимо передавать значение токена, подтверждающее, что приложение действительно имеет доступ к запрошенным ресурсам.

Для получения токена для работы с Merchants API используется метод:
GET https://api.ozon.ru/auth/token/merchants

Основные требования:

  1. В заголовке запроса на получение должны быть переданы идентификатор (x-ApplicationId), подпись запроса (x-Sign), номер версии (X-ApiVersion: 0.1).
  2. В ответе возвращается значение токена и время его жизни в секундах. Значение токена необходимо сохранить для использования при дальнейших обращениях к API.

Пример формирования запроса на получение токена
Сначала необходимо рассчитать подпись для запроса. Для этого используется алгоритм расчета хэш-суммы SHA1 с использованием HMAC key.

Допустим, ApplicationId = superapp, а Secret Key = superkey, то есть ключом для подписи является значение "superkey".

При этом необходимо получить токен для доступа к ресурсам сервиса https://api.ozon.ru/merchants/. Соответственно, URL, на который необходимо обратиться за токеном, будет выглядеть так:
https://api.ozon.ru/auth/token/merchants

Тогда значение на подпись равно "/auth/token/merchants", поскольку для подписи необходима только path-часть URL, а "https://api.ozon.ru" в подписи не участвует. Обратите внимание на наличие слэша в начале path-части URL и отсутствие слэша в конце этого значения.

Рассчитываем:
HMAC_SHA1("superkey", "/auth/token/merchants") = 62e37f6dc60083ba969f06ec2276a8682bec227b

Теперь формируем запрос к Auth API (авторизационный сервис):

URL
https://api.ozon.ru/auth/token/merchants
Method
GET
Headers
x-applicationid:superapp
x-sign:62e37f6dc60083ba969f06ec2276a8682bec227b
x-ApiVersion: 0.1
Content-Type: application/json
Payload
 

В ответе получаем значение токена и время его жизни в секундах:

{ "token": "9895DDA48379484ABC51A4B193CDAE04", "expiration": 600 }

Это значение необходимо сохранить и использовать при дальнейших обращениях к Merchant API, передавая его в заголовке запроса x-Token.

Информация о возможных ошибках при запросе токена описана в статье Авторизация и аутентификация.