Авторизация для запросов магазина к Маркету
Для авторизации используется протокол OAuth 2.0.
Чтобы система магазина получила доступ к данным на Яндексе, нужно:
- Создать приложение на сайте oauth.yandex.ru. Если у вас уже есть приложение с доступом
market:partner-api
, создавать новое не нужно — можно использовать одно для всех магазинов и бизнес-аккаунтов. - Получить токен на имя сотрудника, имеющего доступ к данным магазина.
- Вставить токен в заголовки запросов к Маркету.
Создание приложения
-
Войдите в аккаунт на Яндексе, от имени которого ваша система будет обращаться к API Маркета.
Выбор аккаунта
Отнеситесь внимательно к выбору аккаунта. Это должен быть аккаунт:
- К которому бизнес не потеряет доступ.
- Который не потеряет доступ к бизнесу — например, при увольнении сотрудника.
Лучше всего использовать аккаунт, защищенный двухфакторной аутентификацией и принадлежащий владельцу бизнеса.
Выход со всех устройств
Токен нужно будет получать снова, если пользователь, который его сгенерировал, выйдет со всех устройств в аккаунте Яндекса.
-
Откройте страницу oauth.yandex.ru/client/new. ⚠️ Пользуйтесь именно этой ссылкой. Если просто нажать кнопку создания приложения на сайте Яндекс ID, ничего не получится.
-
В поле Название вашего сервиса напишите что угодно. Если у вас много приложений и вам важно в них ориентироваться, впишите название бизнеса.
-
Иконку можно не добавлять.
-
Выберите платформу Веб-сервисы.
-
В поле Redirect URI нажмите кнопку Подставить URL для отладки, которая находится во всплывающей подсказке к полю.
-
⚠️ В поле Доступ к данным введите
market:partner-api
и выберите API Яндекс.Маркета / Поиска по товарам для партнеров в выпадающем списке.𝓠 Почему мне не видно поле «Доступ к данным»?
𝓐 Вероятно, вы не перешли по ссылке oauth.yandex.ru/client/new, а нажали кнопку создания приложения на сайте Яндекс ID. Вам нужна именно та форма создания приложения, которая открывается по ссылке.
-
Укажите адрес бизнеса в поле Почта для связи.
-
Нажмите Создать приложение.
Получение токена
После создания приложения нужно получить токен.
𝓠 Можно ли для получения токена использовать не тот же самый аккаунт, который использовали для создания приложения?
𝓐 Можно. Он тоже должен соответствовать тем же требованиям. Если Яндекс ID, на который оформлен токен, потеряет доступ к бизнесу, API перестанет работать.
-
Откройте oauth.yandex.ru и нажмите на созданное приложение для доступа к Маркету.
-
Скопируйте ClientID этого приложения.
-
Вставьте индентификатор вот в эту ссылку:
https://oauth.yandex.ru/authorize?response_type=token&client_id=<ClientID>
Получится примерно так:
https://oauth.yandex.ru/authorize?response_type=token&client_id=5473335а275a5nb8e2648q12n8r378l7
Перейдите по получившейся ссылке.
-
Подтвердите вход.
-
Вы увидите токен. Скопируйте его.
Такой токен действует год
Когда год подойдет к концу, получите новый тем же способом. Вы можете автоматизировать обновление токена, воспользовавшись API Яндекс ID. Как это сделать?
Использование авторизационных данных
Полученный токен вставьте в заголовок Authorization
по следующей схеме:
Authorization: Bearer <token>
В результате заголовок будет выглядеть как-то так:
Authorization: Bearer y0_BfRRRRRV2L8sWWvNkSNNNNSrLHaNXg4cCMswFbL6MWab9lktL2KPsMw
Если запрос придет без заголовка с действительным токеном, Маркет вернет HTTP-статус 401 Unauthorized
.