Команда curl выполнить в 1с
Всем привет. Звучал уже подобный вопрос на форуме, но остался без должного внимания. Давайте снова его поднимем на тот случай, чтобы помочь тем, кто с этим может столкнуться.
Есть некий api, через который надо получать информацию, к примеру, по товарам, заказам, можно так же её туда и класть, суть не в этом.
Чтобы работать с этим сервисом, нужно выполнить запрос curl, т. е. авторизацию проходить нужно по OAuth 2.0
curl -xpost -u "ИД_интеграции:СекретИнтеграции" -d "grant_type=client_credentials&scope=admin" https://некийУрл.net/oauth/token
Выполнив этот запрос мне прилетит временный токен, и я могу спокойно пользоваться api.
Собственно вопрос, помогите, плез, разобраться, как это организовать в 1С.
Есть некий api, через который надо получать информацию, к примеру, по товарам, заказам, можно так же её туда и класть, суть не в этом.
Чтобы работать с этим сервисом, нужно выполнить запрос curl, т. е. авторизацию проходить нужно по OAuth 2.0
curl -xpost -u "ИД_интеграции:СекретИнтеграции" -d "grant_type=client_credentials&scope=admin" https://некийУрл.net/oauth/token
Выполнив этот запрос мне прилетит временный токен, и я могу спокойно пользоваться api.
Собственно вопрос, помогите, плез, разобраться, как это организовать в 1С.
По теме из базы знаний
- Собираем образ виртуальной машины с PostgreSQL и платформой 1С. Цикл "Многопоточный CI для 1С c Packer, Vagrant и Jenkins", часть 2
- Ферма ОДИНа или как управлять множеством Серверов 1С: Предприятие из одной точки
- Интеграция "1С:Управление торговлей 10.3" с Yandex SpeechKit для распознавания телефонных звонков
- Гарри Поттер и подкапотное пространство веб-клиента
- 1С 7.7. Разрешительный режим на кассах. Честный знак. Онлайн проверка с 01.04.2024. Офлайн проверка ЛМ ЧЗ с 01.03.2025. Три варианта отправки API запросов, два из них работают на старых Windows
Найденные решения
(1)
равносилен
Не хватает заголовка, по формату похоже на "application/x-www-form-urlencoded"
Если да, то нужно добавить
curl -xpost -u "ИД_интеграции:СекретИнтеграции" -d "grant_type=client_credentials&scope=admin" https://некийУрл.net/oauth/token
равносилен
Соединение = Новый HTTPСоединение("некийУрл.net",443, "ИД_интеграции", "СекретИнтеграции",,, Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос("/oauth/token");
Запрос.УстановитьТелоИзСтроки("grant_type=client_credentials&scope=admin");
Ответ = Соединение.ВызватьHTTPМетод("POST", Запрос);
Не хватает заголовка, по формату похоже на "application/x-www-form-urlencoded"
Если да, то нужно добавить
Запрос.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded")
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
равносилен
Не хватает заголовка, по формату похоже на "application/x-www-form-urlencoded"
Если да, то нужно добавить
curl -xpost -u "ИД_интеграции:СекретИнтеграции" -d "grant_type=client_credentials&scope=admin" https://некийУрл.net/oauth/token
равносилен
Соединение = Новый HTTPСоединение("некийУрл.net",443, "ИД_интеграции", "СекретИнтеграции",,, Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос("/oauth/token");
Запрос.УстановитьТелоИзСтроки("grant_type=client_credentials&scope=admin");
Ответ = Соединение.ВызватьHTTPМетод("POST", Запрос);
Не хватает заголовка, по формату похоже на "application/x-www-form-urlencoded"
Если да, то нужно добавить
Запрос.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded")
(4)А разве строка вида
"grant_type=client_credentials&scope=admin"
передается в теле запроса, а не добавляется в строку URL? Может быть без тела запроса строка соединения просто будет вида "https://некийУрл.net/oauth/token?grant_type=client_credentials&scope=admin"
(4)
(4) Дружище, большое вам спасибо за участие и помощь в разборе этого вопроса.
С вашей помощью, вот что у меня в итоге вышло, надеюсь, кому-то будет в помощь, если возникнет такая задача.
Соединение = Новый HTTPСоединение("некийУрл.net",443, ИДИнтеграции, СекретИнтеграции,,, Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос("/oauth/token");
Запрос.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
Запрос.УстановитьТелоИзСтроки("grant_type=client_credentials&scope=admin");
Ответ = Соединение.ВызватьHTTPМетод("POST", Запрос);
ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
Всем спасибо. И благодарность.
Запрос.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded")
(4) Дружище, большое вам спасибо за участие и помощь в разборе этого вопроса.
С вашей помощью, вот что у меня в итоге вышло, надеюсь, кому-то будет в помощь, если возникнет такая задача.
Соединение = Новый HTTPСоединение("некийУрл.net",443, ИДИнтеграции, СекретИнтеграции,,, Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос("/oauth/token");
Запрос.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
Запрос.УстановитьТелоИзСтроки("grant_type=client_credentials&scope=admin");
Ответ = Соединение.ВызватьHTTPМетод("POST", Запрос);
ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
Всем спасибо. И благодарность.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот