Доброго времени суток, пол дня сижу никак не могу подружиться с их API.
Пытаюсь обратиться на адрес, но весь день то 301 то 404 ловлю. Подскажите, будь те добры, где ошибаюсь.
хочу получить доступ к api.binotel.com/api/4.0/stats/all-incoming-calls-since.json
key, secret есть, но не могу получить хотя бы 121 (неверные данные ключей).
Конкретно этот код ругается на отсутствие каталога '\api\4.0\stats\all-incoming-calls-since.json'
//main
key = ЭтотОбъект.key;
secret = ЭтотОбъект.secret;
host = ЭтотОбъект.host;
host_port = ЭтотОбъект.host_port;
host ="api.binotel.com/api/4.0/stats/all-incoming-calls-since.json";
//Создали запись ЗаписьJSON
ЗаписьJSON = Новый ЗаписьJSON;
//Задаем параметры без переноса строк, можно и с переносом, как кому нравится
тПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, " ", Истина);
ЗаписьJSON.УстановитьСтроку(тПараметрыJSON);
МассивДанныхJSON = Новый Массив;
СтруктураДанныхJSON = Новый Структура;
тДанные = Новый Структура;
тДанные.Вставить("key", key);
тДанные.Вставить("secret", secret);
МассивДанныхJSON.Добавить(тДанные);
// вставляем наш массив в ещеодну структуру
СтруктураДанныхJSON.Вставить("test", МассивДанныхJSON);
ЗаписатьJSON(ЗаписьJSON, СтруктураДанныхJSON);
//ЗаписатьJSON(ЗаписьJSON, МассивДанныхJSON);
ИмяРесурса = "/api/4.0/stats/all-incoming-calls-since.json";
//Здесь нам платформа переделала нашу сложную структуру в строку данных в формате JSON
СтрокаJS = ЗаписьJSON.Закрыть();
ФайлОтвета = "C:\Users\Личный01\Desktop\answer.txt";
//здесь надо указать путь к сайту
HTTPСоединение = Новый HTTPСоединение("api.binotel.com",80);
//создаем запрос данных методом POST
запросPOST = Новый HTTPЗапрос("POST");
//это обязательный заголовок тела запроса
запросPOST.Заголовки.Вставить("Content-type", "application/x-www-form-urlencoded");
//Здесь задаем текст нашей отформатированной строки + задаем формат сроки
запросPOST.УстановитьТелоИзСтроки("mData="+СтрокаJS,"windows-1251",ИспользованиеByteOrderMark.НеИспользовать);
Попытка
//Отправляем для обрааботки на наш сервер
HTTPСоединение.ОтправитьДляОбработки(запросPOST, ИмяРесурса, ФайлОтвета);
Исключение
#Если клиент Тогда
Сообщить(ОписаниеОшибки());
#КонецЕсли
КонецПопытки;
Результат = HTTPСоединение.Получить(запросPOST);
Сообщить(Результат.КодСостояния);
ПоказатьПытаюсь обратиться на адрес, но весь день то 301 то 404 ловлю. Подскажите, будь те добры, где ошибаюсь.
хочу получить доступ к api.binotel.com/api/4.0/stats/all-incoming-calls-since.json
key, secret есть, но не могу получить хотя бы 121 (неверные данные ключей).
Конкретно этот код ругается на отсутствие каталога '\api\4.0\stats\all-incoming-calls-since.json'
Найденные решения
(3) судя по документации, нужно совсем не так и не совсем такие данные передавать.
Вот, на коленке набросал, пробуйте:
Вот, на коленке набросал, пробуйте:
//Создали запись ЗаписьJSON
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
тДанные = Новый Структура;
тДанные.Вставить("timestamp", НачалоДня(ТекущаяДата()) - Дата(1970,1,1));
тДанные.Вставить("key", key);
тДанные.Вставить("secret", secret);
ЗаписатьJSON(ЗаписьJSON, тДанные);
ИмяРесурса = "/api/4.0/stats/all-incoming-calls-since.json";
СтрокаJS = ЗаписьJSON.Закрыть();
//здесь надо указать путь к сайту
HTTPСоединение = Новый HTTPСоединение("api.binotel.com",,,,,,Новый ЗащищенноеСоединениеOpenSSL());
//создаем запрос данных методом POST
запросPOST = Новый HTTPЗапрос(ИмяРесурса);
//это обязательный заголовок тела запроса
запросPOST.Заголовки.Вставить("Content-type", "application/json");
//Здесь задаем текст нашей отформатированной строки + задаем формат сроки
запросPOST.УстановитьТелоИзСтроки(СтрокаJS);
//Отправляем для обрааботки на наш сервер
Ответ = HTTPСоединение.ОтправитьДляОбработки(запросPOST);
// тут можно проверить Ответ.КодСостояния
// получаем строку тела ответа.
Результат = Ответ.ПолучитьТелоКакСтроку();
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
Согласен. Появилась теперь 404. И опять же жалуется на каталог. Такое ощущение, что этот каталог не правильно цепляется к домену.
UPD: прицепил кусок к получил ОК (200). Но это особо проблемы не решает, дальше прийдется обращаться в тот же . Будут мысли, напишите как цеплять.
Новый ЗащищенноеСоединениеOpenSSL()
Согласен. Появилась теперь 404. И опять же жалуется на каталог. Такое ощущение, что этот каталог не правильно цепляется к домену.
UPD: прицепил кусок
\api\4.0
("api.binotel.com\api\4.0",,,,,,Новый ЗащищенноеСоединениеOpenSSL());
incoming-calls-for-period
(3) судя по документации, нужно совсем не так и не совсем такие данные передавать.
Вот, на коленке набросал, пробуйте:
Вот, на коленке набросал, пробуйте:
//Создали запись ЗаписьJSON
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
тДанные = Новый Структура;
тДанные.Вставить("timestamp", НачалоДня(ТекущаяДата()) - Дата(1970,1,1));
тДанные.Вставить("key", key);
тДанные.Вставить("secret", secret);
ЗаписатьJSON(ЗаписьJSON, тДанные);
ИмяРесурса = "/api/4.0/stats/all-incoming-calls-since.json";
СтрокаJS = ЗаписьJSON.Закрыть();
//здесь надо указать путь к сайту
HTTPСоединение = Новый HTTPСоединение("api.binotel.com",,,,,,Новый ЗащищенноеСоединениеOpenSSL());
//создаем запрос данных методом POST
запросPOST = Новый HTTPЗапрос(ИмяРесурса);
//это обязательный заголовок тела запроса
запросPOST.Заголовки.Вставить("Content-type", "application/json");
//Здесь задаем текст нашей отформатированной строки + задаем формат сроки
запросPOST.УстановитьТелоИзСтроки(СтрокаJS);
//Отправляем для обрааботки на наш сервер
Ответ = HTTPСоединение.ОтправитьДляОбработки(запросPOST);
// тут можно проверить Ответ.КодСостояния
// получаем строку тела ответа.
Результат = Ответ.ПолучитьТелоКакСтроку();
Показать
(1)
а ругается на вот этот код:
См. справку 1С:
Так как второй параметр это ИмяРесурса = "/api/4.0/stats/all-incoming-calls-since.json", то и пытается получить доступ к нему как к файлу.. файлу... что и приводит к ошибке.
Конкретно этот код ругается на отсутствие каталога '\api\4.0\stats\all-incoming-calls-since.json'
а ругается на вот этот код:
HTTPСоединение.ОтправитьДляОбработки(запросPOST, ИмяРесурса, ФайлОтвета);
См. справку 1С:
ОтправитьДляОбработки(<HTTPЗапрос>, <ИмяВыходногоФайла>)
Так как второй параметр это ИмяРесурса = "/api/4.0/stats/all-incoming-calls-since.json", то и пытается получить доступ к нему как к файлу.. файлу... что и приводит к ошибке.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот