1. Старт работы с Wialon hosting
Для работы с Wialon hosting прежде всего потребуется получение Токена.
Для этого переходим по адресу: http://hosting.wialon.com/login.html?client_id=wialon&access_type=0xffff&activation_time=0&duration=%E2%80%94%202592000&lang=ru&flags=0x1
Указываем Пользователя и пароль. У этого пользователя должны быть права для работы с внешними программами. Если прав нет нужно обратиться в поддержку Wialon hosting.
После ввода данных , появляется окно «Авторизация успешна» и в адресной строке появится наш Токен : http://hosting.wialon.com/login.html?lang=ru&access_token=ea8fc6f1fd68c344d7e77773b01d7e6893CBDA276C4017B6A5CB2C7C1BCAA70B6F84AFF&user_name=admin&svc_error=0. Токен сохраняем в удобном для Вас месте.
2. Получение SID
Любой запрос к серверу Wialon должен содержать SID - уникальный идентификатор сессии. Чтобы его получить нужно выполнить следующий запрос:
СерверАГ = "hst-api.wialon.com";
имяВыходногоФайла = ПолучитьимяВременногоФайла();
ssl = Новый ЗащищенноеСоединениеOpenSSL();
Заголовки = Новый Соответствие();
Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
HTTPСоединение = Новый HTTPСоединение(СерверАГ,,,,,,ssl );
Результат=HTTPСоединение.Получить("wialon/ajax.html?svc=token/login¶ms={""token"":"" ea8fc6f1fd68c344d7e77773b01d7e6893CBDA276C4017B6A5CB2C7C1BCAA70B6F84AFF ""}", имяВыходногоФайла);
Сервер wialon вернет Вам SID. SID обнуляется ,если на сервер за 5 минут не поступило ни одного запроса с этим SID.
3. Получение списка техники :
СерверАГ = "hst-api.wialon.com";
имяВыходногоФайла = ПолучитьимяВременногоФайла();
ssl = Новый ЗащищенноеСоединениеOpenSSL();
Заголовки = Новый Соответствие();
Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
HTTPСоединение = Новый HTTPСоединение(СерверАГ,,,,,,ssl );
HTTPСоединение.Получить("wialon/ajax.html?svc=core/search_items¶ms={""spec"":{""itemsType"":""avl_unit"",""propName"":""sys_name"",""propValueMask"":""*"",""sortType"":""sys_name""},""force"":1,""flags"":""0x00000001"",""from"":0,""to"":0}&sid=1fd68c344324е678601d7e6893CB");
Запрос вернет список техники с ID.
4. Получение пробега и данных по расходу топлива за период.
Для получения каких-либо данных, в системе Wialon есть отчеты (отдельной функции для получения данных по ресурсам нет). Чтобы сформировать отчет через запрос нужно знать ID отчета .
Получение ID отчета :
HTTPСоединение.Получить("wialon/ajax.html?svc=core/search_items¶ms={""spec"":{""itemsType"":""avl_resource"",""propName"":""reporttemplates"",""propValueMask"":""*"",""sortType"":""reporttemplates""},""force"":1,""flags"":""0x00002001"",""from"":0,""to"":0}&sid=1fd68c344324е678601d7e6893CB");
Результат запроса:
{"searchSpec":{"itemsType":"avl_resource","propName":"reporttemplates","propValueMask":"*","sortType":"reporttemplates","propType":"","or_logic":"0"},
"dataFlags":8193,
"totalItemsCount":1,
"indexFrom":0,
"indexTo":0,
"items":[
{"nm":"admin",
"cls":3,
"id":14971447, - это ID отчета
"mu":0,
"rep":
{
"17":{"id":17,"n":"ОТЧЕТ по ГЕОЗОНАМ","ct":"avl_unit_group","c":30356},
"18":{"id":18,"n":"Сводный отчет ГазПром","ct":"avl_unit","c":61003}, - Это ID шаблона
"19":{"id":19,"n":"Отчет по котельной","ct":"avl_unit","c":23997},
Для каждого пользователя системы у отчета будет свой ID и свой ID шаблона. В данном случае мне нужен отчет «Сводный отчет ГазПром» с ID шаблона 18 и ID ресурса отчетов, для моего пользователя, ID 14971447.
Получение данных по датчикам (выполнение отчета):
reportObjectId:12370291 – это ID автомобиля, который мы узнали из запроса по списоку техники
Дт1 = Дата(2017,9,5,8,0,0); - Дата начала
Дт2 = Дата(2017,9,5,20,0,0); - Дата окончания
Даты в системе Wialon хранятся в формате UNIX-time с часовым поясом – GMT0. У запроса «report/exec_report» есть параметр с часовым поясом “tzOffset”, но в моих запросах он , почему –то , не отрабатывает, поэтому я сам корректирую часовой пояс:
пДТ1 = Формат(Дт1 - Дата(1970,1,1,1,0,0) - 3600 * 4, "ЧГ=0") ; - 3600 * 4 (корректировка на 4 часа);
пДТ2 = Формат(Дт2 - Дата(1970,1,1,1,0,0)- 3600 * 4, "ЧГ=0");
HTTPСоединение.Получить("wialon/ajax.html?svc=report/exec_report¶ms={""reportResourceId"":14971447,""reportTemplateId"":18,""reportObjectId"":12370291,""reportObjectSecId"":0,""interval"":{""from"":"+пДТ1+",""to"":"+пДТ2+",""flags"":0} }&sid=1fd68c344324е678601d7e6893CB”);
После получения данных рекомендуется закрывать сесию :
HTTPСоединение.Получить("wialon/ajax.html?svc=core/logout¶ms={}&sid=1fd68c344324е678601d7e6893CB);
_______________________________________________
Это общий синтаксис работы с сервером Wialon , описание всех функций с примерами есть в документации к нему: https://sdk.wialon.com/wiki/ru/sidebar/remoteapi/apiref/reqformat/reqformat.
К статье прикладываю обработку по работе с ПО «Автограф» и “Wialon Hosting” через HTTP запросы. Обработка работает на конфигурации 1С:УАТ и служит заготовкой для интеграции . Обработка не универсальная , и чтобы она заработала, нужно будет прописать в модуле обработки ID отчетов и токен.