Получение access token и refresh token для работы с API Яндекс.Маркета

Для разнообразия - токены получим для приложения, зарегистрированного на Яндекс-аккаунте, отличном от аккаунта администратора магазина. Сам доступ предоставляется под администратором магазина.

Согласно документации https://yandex.ru/dev/oauth/doc/dg/concepts/about.html , реализовать получение токенов можно одним из двух способов. Первый способ - извлечение из URL - согласно документации не дает refresh-токена. Второй способ выдает refresh_token и access_token - поэтому используем его: https://yandex.ru/dev/oauth/doc/dg/reference/auto-code-client.html#auto-code-client .

1) Под учеткой, отличной от xxxxx@yandex.ru, регистрируем приложение как описано в предыдущем сообщении блога

2) Авторизуемся в браузере на Яндексе под учеткой xxxxx@yandex.ru и переходим по ссылке https://oauth.yandex.ru/authorize?response_type=code&client_id=<AppID>* 


*<AppID> в URL - это ID приложения, которое можно посмотреть, зайдя под учеткой создателя приложения на страницу https://oauth.yandex.ru и выбрав нужное приложение. Внизу будут ID, там же берем для POST запроса client_secret (Пароль).

3) После подтверждения доступа нас переадресуют на страницу с кодом подтверждения:

4) Используем этот Код подтверждения в POST-запросе на адрес https://oauth.yandex.ru/token

POST /token HTTP/1.1
Host: oauth.yandex.ru
Content-Type: application/x-www-form-urlencoded
Content-Length: 132

grant_type=authorization_code&code=7613357&client_id=<ID>&client_secret=<Пароль>

В ответе получаем access_token и refresh_token:

{
    "access_token": "AQ***cLKH0UUTQtw0T7hhbSIC96eHg",
    "expires_in": 31536000,
    "refresh_token": "1:zpzHp0i1***2eo1:KIxHrbr1rfW2I4Ee4Smvnj5b***OhCq-rBmyEBpvC7chW:3OWudeVnRArytcQ_q1Wh1A",
    "token_type": "bearer"
}

Комментарии

Популярные сообщения из этого блога

Can't parse inline keyboard button (Telegram bot)

ТаблицаФормы с гиперссылками в ячейках