Имя: Пароль:
1C
1С v8
Запрос к API Yandex
0 zMorfiyz
 
20.07.23
16:05
Доброго времени суток. Платформа 8.3.10.2252, конфигурация УПП 1.2.17.3. Делаю запрос для получение информации об отгрузках
Проверял в консоли Yandex все работает, но в 1С ответ не приходит и не выдает ни каких ошибок, подскажите что не правильно написал.

ДатаНачало = Формат(ТекущаяДата() - 10 * 24 * 60 * 60, "ДФ=dd-MM-yyyy");
ДатаКонца  = Формат(ТекущаяДата(), "ДФ=dd-MM-yyyy");

ТелоЗапроса = Новый Структура;
ТелоЗапроса.Вставить("dateFrom", ДатаНачало);
ТелоЗапроса.Вставить("dateTo",      ДатаКонца);
    
JSONТело = Новый ЗаписьJSON;
JSONТело.УстановитьСтроку();
ЗаписатьJSON(JSONТело,ТелоЗапроса);
ДанныеДляОтвета = JSONТело.Закрыть();        
    
SL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows(), Новый СертификатыУдостоверяющихЦентровWindows());
    
Соединение = Новый HTTPСоединение("api.partner.market.yandex.ru", 443, , , НеОпределено, Истина, SL);
    
Заголовки = новый Соответствие();
Заголовки.Вставить("Authorization", "Bearer " + СтруктураПараметровСайта.Пароль + "");
Заголовки.Вставить("Content-Type","application/json");
    
Запрос = Новый HTTPЗапрос("/campaigns/" + СтруктураПараметровСайта.ИмяПользователя + "first-mile/shipments?page_token=&limit=", Заголовки);
    
Запрос.УстановитьТелоИзСтроки(ДанныеДляОтвета, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
    
Соединение.Записать(Запрос, ИмяФайлаОтветаОт);
1 ass1c
 
20.07.23
16:32
в POSTMAN сначала отладь - как только там заработает, уже потом транслируй в 1с - идеальная схема.
2 ttk
 
20.07.23
17:11
(0)
1)
как то ты усложняешь
ssl = Новый ЗащищенноеСоединениеOpenSSL();
Соединение = Новый HTTPСоединение("api.partner.market.yandex.ru",,,,,,ssl);
2) Заголовки.Вставить("Authorization", "Bearer " + СтруктураПараметровСайта.Пароль + "");
емнип у яндекса без всяких Bearer авторизация, типа Заголовки.Вставить("Authorization", "OAuth oauth_token=blyablyablya,oauth_client_id=blablabla");
3)"first-mile/shipments?page_token=&limit=", а где сам токен и лимит?


ну и правильно тебя в (1) в постман отправили
3 Donkey_hot
 
20.07.23
21:28
(0) Мне кажется, ваше желание получить информацию (запрос GET или в редких случах POST) не соответствует методу HTTPСоединение.Записать(), который реализует запрос PUT
4 Donkey_hot
 
20.07.23
21:30
(3) Если путаетесь в специальных методах Получить(), ОтправитьДляОбработки(), Записать() - используйте универсальное ВызватьHTTPМетод() с соответствующим первым параметром.
5 Donkey_hot
 
20.07.23
21:37
(3) Посмотрел в документации, действительно получение информации реализовано через PUT-запрос. Оставим за скобками профессионализм таких разработчиков, значит проблема в чем-то другом.
6 Donkey_hot
 
20.07.23
21:41
(5) Проверьте код состояния у объекта HTTPОтвет. Похоже действительно мудрите с авторизацией. Конструктор защищенного соединения SSL вообще можно вызывать без параметров, а конструктор HTTP только с двумя, как писали в пункте 2 ответа (2)
7 zMorfiyz
 
21.07.23
08:57
(6) Спасибо за подсказку про HTTPОтвет, приходит ошибка про тело запроса. Буду разбираться. С авторизацией все ок, у меня на чтение заказов запрос работает.
8 Dimiurg1C
 
21.07.23
10:31
Бывает что несмотря на тело запроса, подобные параметры и в строку надо заводить
9 zMorfiyz
 
24.07.23
10:21
(8) Попробовал в строку, ошибка одна и та же код 400
10 Проводкин
 
24.07.23
11:16
(0) у яндекса с получением ярлыков сегодня проблемы какие то.  ведутся тех работы
11 zMorfiyz
 
25.07.23
15:39
Всем спасибо, сам разобрался.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан