1

JSON запрос

Тема: JSON запрос

К примеру необходимо отправить данные следующего вида:

[
{
"id": "1",  //Уникальный id объекта
"dev": "3520-080-9143_6268", //Уникальный идентификатор локатора
"lat": 52.17237393, //Широта, взятая от передатчика GPS
"lon": 21.1941930753, //Долгота, взятая от передатчика GPS
"tsp": 1539186656000000, //Отметка времени, содержащая дату и время, полученные от передатчика GPS, связанные с географическим положением записи
"alt": 108.96,  //Высота, полученная от передатчика GPS
"acc": 24.0,  //Точность определения местоположения от передатчика GPS
"brg": 1.0,  //  Азимут
"spd": 1.0  // Скорость движения, взятая с GPS-передатчика
},
{"id": "2",
"dev": "3520-080-9143_6267"
,"lat": 51.17237393,
"lon": 20.1941930753,
"tsp": 1539186676000000,
"alt": 8.96,
"acc": 2.0,
"brg": 360.0,
"spd": 10.0
}
]

Соответственно мне нужно для нескольких объектов. Как примерно будет выглядеть скрипт данного обащения.

2

JSON запрос

Re: JSON запрос

Не совсем понятно что за запрос вы привели в качестве примера. Возможно [url=https://sdk.wialon.com/wiki/ru/sidebar/remoteapi/apiref/core/batch]выполнение нескольких команд
[/url] решит проблему.

Mobile Development
Gurtam
3

JSON запрос

Re: JSON запрос

Su.Artem , куда и от куда надо отправить данные?

FFA0-0BBB-8911-15BB

https://www.reg.ru
4

JSON запрос

Re: JSON запрос

К примеру если мне нужно собрать данные с wialon и отправить на свой сервер для создания базы данных.

5

JSON запрос

Re: JSON запрос

Какие данные вас интересуют?
Юниты, группы юнитов, ресурсы, маршруты, пользователи, отчеты, иезультаты отчетов, что?
Можете конкретно написать что вам нужно? Мы не кусаемся smile

FFA0-0BBB-8911-15BB

https://www.reg.ru
6

JSON запрос

Re: JSON запрос

Если вам нужны данные объектов, то можно использовать core/search_items с необходимыми флагами.

Пример node.js скрипта, который логинится по токену и запрашивает все объекты (в данных будут базовые свойства, тип оборудования, UID HW, позиция):

+ открыть спойлер
const https = require('https');
const querystring = require('querystring');

const TOKEN = process.env.TOKEN || '5dce19710a5e26ab8b7b8986cb3c49e58C291791B7F0A7AEB8AFBFCEED7DC03BC48FF5F8';

doLogin();

function doLogin() {
    doApiRequest('token/login', {
        params: {
            token: TOKEN,
            fl: 1,
        },
    }, (error, data) => {
        if (error) { console.error(error); return; }
        if (!data || data.error || !data.eid) { console.error(data); return; }

        fetchItems({ sid: data.eid });
    });
}

function fetchItems({ sid }) {
    doApiRequest('core/search_items', {
        sid,
        params: {
            spec: {
                itemsType: 'avl_unit',
                propName: 'sys_id',
                propValueMask: '*',
                sortType: 'sys_id'
            },
            force: 1,
            flags: 1 | 0x100 | 0x400000,
            from: 0,
            to: 0,
        },
    }, (error, data) => {
        if (error) { console.error(error); return; }
        if (!data || data.error) { console.error(data); return; }

        console.log(data);

        logout({ sid });
    });
}

function logout({ sid }) {
    doApiRequest('core/logout', {
        sid,
        params: {},
    });
}

function doApiRequest(svc, { sid, params }, callback) {
    let req = https.request({
        hostname: 'hst-api.wialon.com',
        path: '/wialon/ajax.html?svc=' + svc + (sid ? '&sid=' + sid : ''),
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
        },
    }, res => {
        let buffers = [];
        let totalLength = 0;

        res.on('error', error => {
            if (callback) { callback(error); callback = null; }
        });

        res.on('data', buffer => {
            buffers.push(buffer);
            totalLength += buffer.length;
        });

        res.on('end', () => {
            let totalBuffer = Buffer.allocUnsafe(totalLength);

            let offset = 0;
            buffers.forEach(buffer => {
                buffer.copy(totalBuffer, offset);
                offset += buffer.length;
            });

            let json = JSON.parse(totalBuffer.toString('utf8'));

            if (callback) { callback(null, json); callback = null; }
        });
    });

    req.end(querystring.stringify({ params: JSON.stringify(params) }));
}

Чтобы получить токен, нужно залогиниться через login.html (в URL'е подать нужные права).

7

JSON запрос

(19/02/2019 10:31:04 отредактировано Su.Artem)

Re: JSON запрос

Мне необходимо при входе, выборе объектов все их данные в формате что я скидывал выше. Сообщениями json/

8

JSON запрос

(01/03/2019 00:42:13 отредактировано techdev)

Re: JSON запрос

Здравствуйте, мы делаем такие интеграции всегда.
Мы можем отправлять вам данные в режиме реального времени в нужном вам формате, а также можем предоставлять API-интерфейсы для спасения информации от устройств по запросу. У нас есть оба варианта.
Я оставляю пример вывода, но могу вместить то, что вы хотите.

С наилучшими пожеланиями из Чили.

{
   "fecha-reporte":"2019-02-28 18:04:02",
   "imei":"4533000000",
   "fecha-dato":"2019-02-28 21:03:29",
   "latitud":"-31.884131",
   "longitud":"-70.745426",
   "velocidad":"0",
   "direccion":"44",
   "altitud":"889.620000",
   "sats":"11",
   "hdop":"0.800000",
   "inputs":"0",
   "outputs":"-1",
   "ibutton":"-1",
   "adcs":[

   ],
   "parametros":{
      "rssi":"-73",
      "unit_status":"0",
      "event_index":"12",
      "event_code":"1",
      "accum_0":"0",
      "accum_1":"0",
      "accum_2":"1490",
      "accum_3":"0",
      "accum_4":"0",
      "accum_5":"1216",
      "accum_6":"13000",
      "accum_7":"56517385",
      "accum_8":"16288860",
      "accum_9":"1",
      "accum_10":"0",
      "accum_11":"0",
      "accum_12":"1",
      "accum_13":"6",
      "report_type":"2",
      "seq_num":"17597",
      "host":"186.11.32.80",
      "iridium":"0",
      "digital":"0.000000",
      "digital1":"0.000000",
      "digital2":"0.000000",
      "digital3":"0.000000",
      "digital4":"0.000000",
      "digital5":"0.000000",
      "digital6":"0.000000",
      "digital7":"0.000000",
      "digital8":"1.000000",
      "digital9":"1.000000",
      "digital10":"0.000000",
      "digital11":"0.000000",
      "digital12":"0.000000",
      "digital13":"0.000000",
      "digital14":"0.000000",
      "digital15":"0.000000",
      "digital16":"0.000000",
      "digital17":"0.000000",
      "digital18":"1.000000",
      "counter":"0.000000",
      "fuel level":"0.000000",
      "digital19":"1.000000",
      "instant fuel consumption":"16288.860000",
      "odometer":"56517.385000",
      "voltage":"13.000000",
      "temperature":"76.000000",
      "custom":"0.000000",
      "mileage":"0.000000",
      "custom1":"14.900000",
      "engine rpm":"0.000000",
      "custom2":"0.000000",
      "engine operation":"0.000000",
      "digital20":"0.000000",
      "digital21":"0.000000",
      "digital22":"0.000000",
      "digital23":"0.000000"
   }
}
Desarrollo e integración de sistemas
System development and integration
Разработка системы и интеграция
www.techdev.cl