В модуле Яндекс.Маркета для 1С используется отладочный токен
В типовом модуле расширения, предлагаемом Яндексом, используется отладочный токен без возможности автоматического обновления с помощью refresh_token. https://yandex.ru/support/marketplace-module-1c/install.html - проверено на MARKETPLACE_MODUL_1.7.42.cfe для конфигурации Управление Торговлей 11 платформы 8.3.15 и выше. Минус данного подхода в том, что нужно вручную раз в год продлевать отладочный токен. Без продления модуль перестанет корректно отрабатывать исходящие запросы от 1С к АПИ.
Детали: Обработки.Беру_Регистрация.Форма - модуль формы:
* В коде в переменную КлиентID = Беру_ВызовСервера.ИдентификаторПриложения(); вернет строку "7f9a605a09594756a564903bcaedd89f". Можно также посмотреть описание этого приложения по адресу https://oauth.yandex.ru/client/7f9a605a09594756a564903bcaedd89f
Адрес - это ПутьКДанным для элемента формы типа Поле HTML документа. Идет GET - запрос по варианту получения отладочного токена: response_type=token с отладочным коллбэком. Иначе говоря, все происходит согласно указанию "Перейдите по ссылке следующего вида: https://oauth.yandex.ru/authorize?response_type=token" в инструкции https://yandex.ru/dev/oauth/doc/dg/tasks/get-oauth-token.html. Далее коллбэк отработал на адрес https://oauth.yandex.ru/verification_code#access_token=AQAAAAAe4pwbAAWhzEptUwfd4UITpUB0XOZUM74&token_type=bearer&expires_in=31536000. А нажатие "Подставить URL для разработки" при регистрации нового приложения (https://oauth.yandex.ru/client/new) как раз вставляет Callback URL: https://oauth.yandex.ru/verification_code
Рабочий акцесс токен с возможностью автоматического обновления по рефреш токену нужно получать способом через код подтверждения. Т.е. GET запрос идет на другой URL - response_type=code. Согласно указанию из инструкции https://yandex.ru/dev/oauth/doc/dg/reference/auto-code-client.html Приложение должно направить пользователя на Яндекс.OAuth по следующему адресу: https://oauth.yandex.ru/authorize?response_type=code
Комментарии
Отправить комментарий