Авторизация для запросов магазина к Маркету

Для авторизации используется протокол OAuth 2.0.

Чтобы система магазина получила доступ к данным на Яндексе, нужно:

  1. Создать приложение на сайте oauth.yandex.ru. Если у вас уже есть приложение с доступом market:partner-api, создавать новое не нужно — можно использовать одно для всех магазинов и бизнес-аккаунтов.
  2. Получить токен на имя сотрудника, имеющего доступ к данным магазина.
  3. Вставить токен в заголовки запросов к Маркету.

Создание приложения

  1. Войдите в аккаунт на Яндексе, от имени которого ваша система будет обращаться к API Маркета.

    Важно

    Отнеситесь внимательно к выбору аккаунта. Это должен быть аккаунт:

    • К которому бизнес не потеряет доступ.
    • Который не потеряет доступ к бизнесу — например, при увольнении сотрудника.

    Лучше всего использовать аккаунт, защищенный двухфакторной аутентификацией и принадлежащий владельцу бизнеса.

  2. Откройте страницу oauth.yandex.ru/client/new. ⚠️ Пользуйтесь именно этой ссылкой. Если просто нажать кнопку создания приложения на сайте Яндекс ID, ничего не получится.

  3. В поле Название вашего сервиса напишите что угодно. Если у вас много приложений и вам важно в них ориентироваться, впишите название бизнеса.

  4. Иконку можно не добавлять.

  5. Выберите платформу Веб-сервисы.

  6. В поле Redirect URI нажмите кнопку Подставить URL для отладки, которая находится во всплывающей подсказке к полю. Скриншот

  7. ⚠️ В поле Доступ к данным введите market:partner-api и выберите API Яндекс.Маркета / Поиска по товарам для партнеров в выпадающем списке.

    𝓠 Почему мне не видно поле «Доступ к данным»?

    𝓐 Вероятно, вы не перешли по ссылке oauth.yandex.ru/client/new, а нажали кнопку создания приложения на сайте Яндекс ID. Вам нужна именно та форма создания приложения, которая открывается по ссылке.

  8. Укажите адрес бизнеса в поле Почта для связи.

  9. Нажмите Создать приложение.

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

После создания приложения нужно получить токен.

𝓠 Можно ли для получения токена использовать не тот же самый аккаунт, который использовали для создания приложения?

𝓐 Можно. Он тоже должен соответствовать тем же требованиям. Если Яндекс ID, на который оформлен токен, потеряет доступ к бизнесу, API перестанет работать.

  1. Откройте oauth.yandex.ru и нажмите на созданное приложение для доступа к Маркету.

  2. Скопируйте ClientID этого приложения.

  3. Вставьте индентификатор вот в эту ссылку:

    https://oauth.yandex.ru/authorize?response_type=token&client_id=<ClientID>
    

    Получится примерно так:

    https://oauth.yandex.ru/authorize?response_type=token&client_id=5473335а275a5nb8e2648q12n8r378l7
    

    Перейдите по получившейся ссылке.

  4. Подтвердите вход.

  5. Вы увидите токен. Скопируйте его.

Такой токен действует год

Когда год подойдет к концу, получите новый тем же способом. Вы можете автоматизировать обновление токена, воспользовавшись API Яндекс ID. Как это сделать?

Использование авторизационных данных

Полученный токен вставьте в заголовок Authorization по следующей схеме:

Authorization: Bearer <token>

В результате заголовок будет выглядеть как-то так:

Authorization: Bearer y0_BfRRRRRV2L8sWWvNkSNNNNSrLHaNXg4cCMswFbL6MWab9lktL2KPsMw

Если запрос придет без заголовка с действительным токеном, Маркет вернет HTTP-статус 401 Unauthorized.

Как авторизоваться в консоли

В консоли тоже нужен токен, он тоже пишется с Bearer :

Изображение консоли с заполненным токеном

Может быть полезно