1

Тема: API по работе с системой

Для того чтоб запросить состояние автомобилей с gps-tracker.com.ua нужно:

1. Авторизироваться.
2. Делать запросы.
Авторизация и дальнейшие запросы должны происходить в пределах одной сессии !!!
Авторизация: http://gps-tracker.com.ua/login.php
С параметрами (POST):
login=demo
password=accepted
При успешной авторизации будет получен ответ: {"success": "true"}
При ошибке: {"success": "false", "reason": "Описание ошибки"}

Запрос состояния обьектов: http://gps-tracker.com.ua/loadevents.php
С параметрами (GET):
param = icars
В ответе будет JSON массив

Запрос истории перемещения: http://gps-tracker.com.ua/loadevents.php
С параметрами (GET):
date1 = 2010-07-23 (дата начала периода)
date2 = 2010-07-23 (дата конца периода)
id = 387 (id устройства)
param = track
time1 = 00:00:00 (время начала периода)
time2 = 19:42:04 (время конца периода)
В ответе будет JSON массив


Запрос информации об объекте: http://gps-tracker.com.ua/carinfo.php
С параметрами (POST):
action = load
carid = 688 (id устрйства)

В ответе будет JSON массив.

С уважением, коллектив gps-tracker.com.ua

2

Re: API по работе с системой

Офигенно, просто нет слов! wink

3

Re: API по работе с системой

Да, вот это уже интересно.

4

Re: API по работе с системой

Что-то не могу подключиться. Передаю POST параметры (логин, пароль) как вы написали (и свои, и демо), но чувствую нужен пример, т.к. получаю всё время "{"success": "false", "reason": "Введите логин и пароль" }".

Я подключаюсь так:

    WinHttpОбъект.Open("POST","http://gps-tracker.com.ua/login.php",0);
    ДанныеНаСайт = "login=*****&password=*****";
    WinHttpОбъект.Send(ДанныеНаСайт);
    ОтветССайта = WinHttpОбъект.ResponseText();

Естественно, вместо **** - свои данные.

Отредактировано polaris (26-10-2010 11:46:23)

5

Re: API по работе с системой

Кстати, есть документированный API - как пример для подражания api.car-online.ru/export/events/. Возможно, вы про него знаете.

Отредактировано polaris (27-10-2010 09:45:56)

6

Re: API по работе с системой

Здравствуйте,
API работает, все хорошо.
Но у меня просьба: могли бы Вы привести более подробную документацию по
возвращаемым JSON массивам, их структуру и возможные значения.
Спасибо!

7

Re: API по работе с системой

rdanilin, а вы можете привести пример кода подключения? А то я и на PHP не могу подключиться.

8

Re: API по работе с системой

polaris пишет:

rdanilin, а вы можете привести пример кода подключения? А то я и на PHP не могу подключиться.

если все еще актуально, то можно, например, так:

<?php
function curl_req($hwnd, $url, array $req = NULL, $post = false) { 
    $options = array(
        CURLOPT_FOLLOWLOCATION => 0,
        CURLOPT_COOKIEJAR => 'cookies.m2m',
        CURLOPT_HEADER => 0,
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_TIMEOUT => 4,
        CURLOPT_POST => ($post) ? 1 : 0, 
        CURLOPT_FRESH_CONNECT => 1,
        CURLOPT_FORBID_REUSE => 1,
        CURLOPT_URL => ($post) ? $url : $url . (strpos($url, '?') === FALSE ? '?' : '') . http_build_query($req),
        CURLOPT_POSTFIELDS => ($post) ? http_build_query($req) : null
    );
    curl_setopt_array($hwnd, ($options)); 
    if( ! $result = curl_exec($hwnd)) { 
        trigger_error(curl_error($hwnd)); 
    }
    return $result; 
} 

$login_url = 'http://gps-tracker.com.ua/login.php';
$login_data = array('login' => 'demo', 'password' => 'accepted');

$info_url = 'http://gps-tracker.com.ua/loadevents.php';
$info_data = array(
    'param' => 'icars',
    '_dc' => mt_rand(0, 10000000000)
);

$carinfo_url = 'http://gps-tracker.com.ua/carinfo.php';
$carinfo_data = array('action' => 'load', 'carid' => '387');

$ch = curl_init();
$login = json_decode(curl_req($ch, $login_url, $login_data, true), true);

if($login['success'] == 'true') {
    $info = curl_req($ch, $info_url, $info_data);
    var_dump($info);

    $obj = json_decode(curl_req($ch, $carinfo_url, $carinfo_data, true), true);
    var_dump($obj);
} else {
    echo 'Login error: ' . $login['reason'];
}

curl_close($ch); 
?>

должен быть установлен php5-curl, а директория со скриптом(можно переназначить) иметь права на запись, что бы слить кукисы от сайта.

Все, что нельзя написать на ассемблере, можно доделать паяльником (ц)

9

Re: API по работе с системой

Интересная штука. Хотелось бы внедрить мониторинг на своем проекте http://gis-gid.ru/. В ближайшее время попробую поэкспериментировать с запросами, но на первый взгляд не хватает API запросов для осуществления регистрации и прикрепления трекеров (устройств) с моего сервиса. Просто как то неудобно было бы пользователей отправлять на ваш проект для регистрации в вашем сервисе и прикрепления трекеров к своим учетным данным...Или я просто чего то недопонял? Пожалуйста поясните этот момент или давайте свяжемся с вами лично поговорим, если конечно вы не против (мой е-мэйл: chitagpsmap@yandex.ru). Заранее спасибо.

10

Re: API по работе с системой

Это хорошая мысль - в понедельник обязательно обсудим данный момент)

11

Re: API по работе с системой

Тоже было бы интересно реализовать данный сервис на собственном сайте, и предлагать как дополнения к устанавливаемому оборудованию в нашем сервисном центе.

12

Re: API по работе с системой

На данным момент активация открыта для всех желающих.
При вставке у себя на сайте - просьба написать письмо на support<a>gps-tracker.com.ua, активация произойдет в течении 24 часо.

13

Re: API по работе с системой

Почему веб-сервер разрывает соединение после прохождения процедуры авторизации??? Шлю HTTP пакет:   

POST /login.php HTTP/1.1
Connection: Keep-Alive
Host: gps-tracker.com.ua
Content-type: application/x-www-form-urlencoded
Content-Length: 28

login=demo&password=accepted

приходит:

HTTP/1.1 200 OK
Date: Thu, 31 Mar 2011 15:13:36 GMT
Server: Apache/2.2.17 (Fedora)
X-Powered-By: PHP/5.3.3
Set-Cookie: PHPSESSID=ufojv0j7enls37chb543q6mkl7; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 19
Connection: close
Content-Type: text/html; charset=windows-1251

{"success": "true"}


Что я неправильно делаю?

14

Re: API по работе с системой

Доброго времени суток.
Очень заинтересовал ваш сервис. Хотел бы узнать по поводу API.
Описанные функции в первом посте - это и весь публичный API по работе с сервисом?
При добавлении устройства в личном кабинете, обращение идет к "http://gps-tracker.com.ua/add_device.php" - я имею право добавлять устройства в свой профиль через свое приложение по этому адресу?

И еще один момент. Никак не могу понять, для чего в личном кабинете, при добавлении устройства стоит капча?
Я ведь уже "доказал", что я не бот, пройдя регистрацию/подтверждение/авторизацию..

Надеюсь на дальнейшее сотрудничество. Спасибо за сервис.


////
Кажется ошибка json в ответе от запроса http://gps-tracker.com.ua/loadevents.php?param=icars

{rows:[{"CarId":"144", .... }]}

должно быть

{"rows":[{"CarId":"144", .... }]}

Отредактировано borales (25-07-2011 00:25:47)

15

Re: API по работе с системой

borales пишет:

Кажется ошибка json в ответе от запроса http://gps-tracker.com.ua/loadevents.php?param=icars

конечно ошибка.. хотя странно ведь - как-то же их сервис разгребает этот не валидный ответ?..

Все, что нельзя написать на ассемблере, можно доделать паяльником (ц)

16

Re: API по работе с системой

{rows:[{"CarId":"144", .... }]}

Исправили! Теперь по человечески {"rows":.....

С уважением, коллектив gps-tracker.com.ua

17

Re: API по работе с системой

admin пишет:
{rows:[{"CarId":"144", .... }]}

Исправили! Теперь по человечески {"rows":.....

А я то думал!

Когда писал запросы и обработку подстроился под неверный ответ сервера и сделал чтоб все и так работало, а в один прекрасный день резко перестало работать, немного попотел, чтоб понять, что сделали корректный JSON в ответ))))) и удалить строчку, которая исправляла ранее не верную строку в верную))))

18

Re: API по работе с системой

а как получить значения аналоговых датчиков?

19

Re: API по работе с системой

potapenkov пишет:

а как получить значения аналоговых датчиков?

А точнее как получить информацию с любых датчиков

20

Re: API по работе с системой

admin пишет:

Для того чтоб запросить состояние автомобилей с gps-tracker.com.ua нужно:

1. Авторизироваться.
2. Делать запросы.

Можете на скриншотах показать как это все выглядит уже сделанным? Очень интересно

21

Re: API по работе с системой

kornet46rus пишет:

Можете на скриншотах показать как это все выглядит уже сделанным? Очень интересно

на каких скриншотах? живой пример подойдет? (пример кода я выкладывал раньше в ветке)
http://f.stelm.me/gps/carinfo.php

Отредактировано alexdob (05-11-2016 18:20:38)

Все, что нельзя написать на ассемблере, можно доделать паяльником (ц)