Многие разработчики при интеграции 1С с Яндекс Маркетом сталкиваются с ошибкой 403 «Token is invalid». Основная причина заключается в непонимании того, как именно устроена авторизация OAuth 2.0. Давайте разберем по шагам, как правильно настроить обмен данными и получить необходимый токен доступа.
Первое, что необходимо усвоить — Client Secret (секретный ключ приложения) и OAuth-токен — это совершенно разные сущности. Секретный ключ выдается при регистрации приложения в кабинете разработчика и служит для «подтверждения личности» вашего приложения при обмене временного кода на полноценный токен. Его нельзя использовать в заголовках запросов к API вместо самого токена.
Для авторизации запросов к API Яндекс Маркета используется токен, который передается в заголовке Authorization в формате Bearer <ваш_токен>.
Процесс авторизации состоит из двух этапов, которые мы должны реализовать в нашей обработке или модуле интеграции:
access_token.Для обмена временного кода на токен нам необходимо выполнить POST-запрос к адресу https://oauth.yandex.ru/token. Важно правильно сформировать тело запроса и указать тип контента application/x-www-form-urlencoded.
Давайте посмотрим, как это выглядит на практике:
СтрокаЗапроса = "grant_type=authorization_code" +
"&code=" + КодАвторизации +
"&client_id=" + IDПриложения +
"&client_secret=" + ПарольПриложения;
// Далее формируем HTTP-запрос в 1С:
HTTPЗапрос = Новый HTTPЗапрос("/token");
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаЗапроса);
HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
После отправки такого запроса с помощью объекта HTTPСоединение, вы получите JSON-ответ, содержащий access_token. Именно этот токен необходимо сохранять в константы или регистры сведений вашей базы 1С для последующего использования в заголовках запросов к Маркету.
Если вы только начинаете разработку и не хотите тратить время на написание логики обработки редиректов и получения кодов, воспользуйтесь Debug Token (отладочным токеном). Это специальный токен, который можно сгенерировать вручную в кабинете разработчика Яндекса для вашего приложения.
Преимущества отладочного токена:
Чтобы ваша интеграция работала стабильно и не переставала отвечать через некоторое время, учтите следующие моменты:
refresh_token, который также приходит в ответе от сервера Яндекса.Следуя этим рекомендациям и строго разделяя этапы авторизации, вы сможете успешно реализовать обмен данными между 1С и Яндекс Маркетом. Начните с получения отладочного токена, чтобы убедиться в корректности формирования заголовков, а затем переходите к автоматизации процесса получения и обновления токенов в штатном режиме.