В модуле Яндекс.Маркета для 1С используется отладочный токен

В типовом модуле расширения, предлагаемом Яндексом, используется отладочный токен без возможности автоматического обновления с помощью refresh_token. https://yandex.ru/support/marketplace-module-1c/install.html - проверено на MARKETPLACE_MODUL_1.7.42.cfe для конфигурации Управление Торговлей 11 платформы 8.3.15 и выше. Минус данного подхода в том, что нужно вручную раз в год продлевать отладочный токен. Без продления модуль перестанет корректно отрабатывать исходящие запросы от 1С к АПИ.

Детали: Обработки.Беру_Регистрация.Форма - модуль формы:

&НаКлиенте Процедура ПолучитьТокен(Команда) Если НЕ ЗначениеЗаполнено(КлиентID) Тогда КлиентID = Беру_ВызовСервера.ИдентификаторПриложения(); Если НЕ ЗначениеЗаполнено(КлиентID) Тогда ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не заполнен ID приложения!"); Возврат; КонецЕсли; КонецЕсли; Элементы.Адрес.Видимость = Истина; #Если НЕ ВебКлиент Тогда Адрес = "https://oauth.yandex.ru/authorize?response_type=token&client_id="+СокрЛП(КлиентID); #КонецЕсли #Если ВебКлиент Тогда ПерейтиПоНавигационнойСсылке("https://oauth.yandex.ru/authorize?response_type=token&client_id="+СокрЛП(КлиентID)); #КонецЕсли КонецПроцедуры








* В коде в переменную Клиент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





Комментарии

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

Can't parse inline keyboard button (Telegram bot)

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

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