Как из запроса в виде ссылки к виджету Манго офис, сделать Post запрос в 1С?
Есть запрос в виде ссылки 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Запрос,ФайлРезультата);
ПоказатьНайденные решения
(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Запрос, ФайлРезультата);
и все сработало
Сервер = "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Запрос, ФайлРезультата);
и все сработало
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(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Ответ = ОтправкаЗапросов.ОтправитьЗапрос(ПараметрыОтправки, Истина);
Показать
(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Запрос, ФайлРезультата);
и все сработало
Сервер = "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Запрос, ФайлРезультата);
и все сработало
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот