Как из запроса в виде ссылки к виджету Манго офис, сделать Post запрос в 1С?

1. AlexxGor 3 23.11.22 10:36 Сейчас в теме
Есть запрос в виде ссылки https://widgets-api.mango-office.ru/v1/calltracking/27067/calls.json?dateStart=2022-11-16T23:59Z&dateEnd=2022-11-22T23:59Z&access_token=МОЙТОКЕН. Если его запускать через браузер, то он срабатывает и выдает нужную мне информацию. Я пытаюсь реализовать его в 1с. Как я понимаю (скорее всего ошибочно), что здесь Сервер: widgets-api.mango-office.ru/ , Ресурс: v1/calltracking/27067/calls.json , ну а тело запроса это: dateStart=2022-11-16T23:59Z&dateEnd=2022-11-22T23:59Z&access_token=МОЙТОКЕН. Пытаясь его реализовать в 1С, я получаю в ответ, что страница не найдена. Подскажите пожалуйста где моя ошибка. Бьюсь уже неделю. Вот код который я использую:

    Сервер = "widgets-api.mango-office.ru/";   
         Ресурс = "v1/calltracking/27067/calls.json";

	ПараметрыЗапроса = Новый Структура;
	ПараметрыЗапроса.Вставить("dateStart",  НачалоДня(ТекущаяДата())-604800);   
	ПараметрыЗапроса.Вставить("dateEnd",  КонецДня(ТекущаяДата()));	
	ПараметрыЗапроса.Вставить("access_token", "МОЙТОКЕН");

         HTTP = Новый HTTPСоединение(Сервер,,,,,, Новый ЗащищенноеСоединениеOpenSSL());
   
         ЗаписьJSON = Новый ЗаписьJSON;
         ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет));
         ЗаписатьJSON(ЗаписьJSON, ПараметрыЗапроса);
         СтрокаJSON = ЗаписьJSON.Закрыть();
         СтрокаЗапросаВеб = СтрокаJSON;   
         
         ЗаголовкиHTTP = Новый Соответствие;
         ЗаголовкиHTTP.Вставить("Content-type", "application/json");
         ЗаголовкиHTTP.Вставить("Accept-Language", "en");
         ЗаголовкиHTTP.Вставить("Accept-Charset", "utf-8");
         ЗаголовкиHTTP.Вставить("Content-Language", "en");
         ЗаголовкиHTTP.Вставить("Content-Charset", "utf-8");
         ЗаголовкиHTTP.Вставить("Content-Length",СтрДлина(СтрокаЗапросаВеб)); 
         HTTPЗапрос = Новый HTTPЗапрос(Ресурс, ЗаголовкиHTTP);
         HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаЗапросаВеб, "UTF-8", ИспользованиеByteOrderMark.НеИспользовать);
         сООБЩИТЬ(""+ Сервер + Ресурс);
         ФайлРезультата = ПолучитьИмяВременногоФайла();   
         HTTP.ОтправитьДляОбработки(HTTPЗапрос,ФайлРезультата);
Показать
Найденные решения
16. AlexxGor 3 25.11.22 18:23 Сейчас в теме
(5) В результате установки Fiddler я понял, что это Get запрос, а не Post и в итоге код получился:
Сервер = "widgets-api.mango-office.ru/";
Ресурс = "v1/calltracking/27067/calls.json?dateStart=2022-11-17T23:59Z&dateEnd=2022-11-23T23:59Z&access_token=XXX";
HTTP = Новый HTTPСоединение(Сервер,,,,,Истина);
//ФайлЗапроса = ПолучитьИмяВременногоФайла();
ФайлРезультата = ПолучитьИмяВременногоФайла();
HTTPЗапрос = Новый HTTPЗапрос(Ресурс);
Ответ = HTTP.Получить(HTTPЗапрос, ФайлРезультата);
и все сработало
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 23.11.22 11:33 Сейчас в теме
(1) У меня все по другому. Возможно разными технологиями манго пользуемся.
ПараметрыЗвонка = Новый Структура;
ПараметрыЗвонка.Вставить("number", НомерТрекинга);

ПараметрыЗвонкаJson = ОтправкаЗапросов.СоздатьJSONИзСтруктуры(ПараметрыЗвонка);

НастройкиТелефонии = ТелефонияСервер.ПолучитьНастройкиТелефонии();
ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.SHA256);
ХешированиеДанных.Добавить(НастройкиТелефонии.vpbx_api_key);
ХешированиеДанных.Добавить(ПараметрыЗвонкаJson);
ХешированиеДанных.Добавить(НастройкиТелефонии.vpbx_api_salt);

ПараметрыОтправки = ОтправкаЗапросов.НовыйПараметрыОтправки();
ПараметрыОтправки.URL = "https://app.mango-office.ru/vpbx/queries/user_info_by_dct_number";
ПараметрыОтправки.ПараметрыТела.Вставить("json", ПараметрыЗвонкаJson);
ПараметрыОтправки.ПараметрыТела.Вставить("vpbx_api_key", НастройкиТелефонии.vpbx_api_key);
ПараметрыОтправки.ПараметрыТела.Вставить("sign", НРег(СтрЗаменить(Строка(ХешированиеДанных.ХешСумма), " ", "")));

HTTPОтвет = ОтправкаЗапросов.ОтправитьЗапрос(ПараметрыОтправки, Истина);
Показать
6. AlexxGor 3 23.11.22 11:47 Сейчас в теме
(2) Ну да это интеграция по API. А вот по этому коду какая будет ссылка для браузера? Т.е. задача наоборот
7. RustamZz 23.11.22 11:55 Сейчас в теме
(6) Не знаю. Я вот это реализовывал:
Прикрепленные файлы:
8. AlexxGor 3 23.11.22 12:02 Сейчас в теме
(7)Да. ДА. Это как раз мне и нужно, данные UTM. Я тоже это пробовал. Проблема в том, что всегда приходит пустое значение. Хотя номер есть в журнале Коллтрекинга в личном кабинете. Вы получали данные по этому запросу?
9. RustamZz 23.11.22 12:05 Сейчас в теме
(8) Работает уже полгода. Клиент доволен. Иногда бывают пустые ответы и 99% это спам.
10. AlexxGor 3 23.11.22 12:08 Сейчас в теме
11. AlexxGor 3 23.11.22 12:08 Сейчас в теме
(9) Ресурс = "queries/user_info_by_dct_number/ ?
12. RustamZz 23.11.22 12:12 Сейчас в теме
13. AlexxGor 3 23.11.22 12:24 Сейчас в теме
(9) а можете дать общий модуль "ОтправкаЗапросов" ?
14. AlexxGor 3 23.11.22 13:51 Сейчас в теме
(9) или хотя бы ОтправкаЗапросов.НовыйПараметрыОтправки() и ОтправкаЗапросов.ОтправитьЗапрос()
15. RustamZz 23.11.22 14:24 Сейчас в теме
(14) Все процедуры из УНФ. Все что мое здесь. А так весь код 1С как матрешку придется выкладывать.
3. Sashares 34 23.11.22 11:39 Сейчас в теме
(1)
Сервер = "widgets-api.mango-office.ru";
Ресурс = "/v1/calltracking/27067/calls.json";
4. AlexxGor 3 23.11.22 11:42 Сейчас в теме
(3) почему тогда пишет, что страница не найдена?
5. Sashares 34 23.11.22 11:44 Сейчас в теме
(4)Установите Fiddler, в нем сможете увидеть, какой POST запрос отправляется при нажатии на ссылку в браузере, и какой запрос отправляется из 1С.
Увидите отличия, исправите.
16. AlexxGor 3 25.11.22 18:23 Сейчас в теме
(5) В результате установки Fiddler я понял, что это Get запрос, а не Post и в итоге код получился:
Сервер = "widgets-api.mango-office.ru/";
Ресурс = "v1/calltracking/27067/calls.json?dateStart=2022-11-17T23:59Z&dateEnd=2022-11-23T23:59Z&access_token=XXX";
HTTP = Новый HTTPСоединение(Сервер,,,,,Истина);
//ФайлЗапроса = ПолучитьИмяВременногоФайла();
ФайлРезультата = ПолучитьИмяВременногоФайла();
HTTPЗапрос = Новый HTTPЗапрос(Ресурс);
Ответ = HTTP.Получить(HTTPЗапрос, ФайлРезультата);
и все сработало
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот