GSM сигнализация старлайн->MD РАБОТАЕТ,но требует доработки

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

GSM сигнализация старлайн->MD РАБОТАЕТ,но требует доработки

Сообщение directman66 » Вт ноя 28, 2017 11:20 pm

Собственно на сайте настроек нашел бота телеграмм, у которого можно запрашивать текущие координаты. Бот успешно получает. Осталось только научиться аккуратно их забирать из MD. Наш бот телеграмм умеет общаться с другими ботами?
Последний раз редактировалось directman66 Ср дек 13, 2017 12:29 pm, всего редактировалось 1 раз.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
alekszander
Сообщения: 178
Зарегистрирован: Вс янв 05, 2014 5:37 am
Благодарил (а): 10 раз
Поблагодарили: 17 раз

Re: gsm сигнализации старлайн-> md

Сообщение alekszander » Ср ноя 29, 2017 3:35 am

Если я не ошибаюсь то ботам запрещено обмениваться сообщениями друг с другом. У меня тоже старлайн gsm но подружить так и не удалось. Есть python скрипт
скриптПоказать
import requests
import logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
logging.debug('This is a log message.')
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0',
'Accept': 'application/json, text/javascript, */*; q=0.01',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'X-Requested-With': 'XMLHttpRequest'}
with requests.Session() as session:
login = session.post('https://starline-online.ru/user/login', {
'LoginForm[login]': 'username',
'LoginForm[pass]': 'password',
'remember': 1,},headers=header)
print (r.status_code,r.reason)
r = session.post('https://starline-online.ru/device/ваш_i ... uteCommand',{
'value':'1',
'action':'ign',
'password':''},headers=header)
logout = session.post('https://starline-online.ru/user/logout', {
'':''},)
print (login.status_code,login.reason)
print (login.cookies)
print (logout.status_code,logout.reason)
Но почему-то он не хочет заводится, есть подозрения что Starline что то поменял на своей стороне. И API у них есть, но политика предоставления очень жесткая.

*** Сообщение запрещено. Сообщение похоже на спам. ***
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: gsm сигнализации старлайн-> md

Сообщение directman66 » Пт дек 01, 2017 3:13 pm

по вашим ключевым словам нашел интеграцию с сири
https://habrahabr.ru/post/315782/

если у человека работает на питоне, думаю не трудно переделать и на php

ЗЫЖ: Сценарии почти готовы!!

Для интеграции требуется установленная сигнализация или охранный маяк, подключеные к сервису starline телематика (starline-online.ru). Список сигнализаций можно узнать на сайте производителя. У меня сигнализация A93+CAN2LIN+GSM+установка вышли примерно в 17 т.р.

Работает: получение координат, статуса работы двигателя, охраны, напряжения, в общем всех параметров, что есть на сайте:
Скрипт сам создает объекты класса starline-online (его требуется создать предварительно), которые он получает с сайта.
СпойлерПоказать

Код: Выделить всё

$cookie_file = ROOT . 'cached/starline_cookie.txt'; //в этом файле будет храниться сессия
//$cookie_file = 'dialog_cookie.txt'; //в этом файле будет храниться сессия
// STEP 1 -- LOGIN

$url = 'https://starline-online.ru/user/login'; // ссылка, по которой нам надо зайти
// задаём поля, которые будут отправлены при логине     
$fields = array(
    'LoginForm[login]' => gg('balance.StarlineLogin'), // номер телефона
    'LoginForm[rememberMe]' => 'on', 
 'LoginForm[pass]' =>  gg('balance.StarlinePass')

);

print_r($fields);
echo "<br>";
$fields_string = '';
foreach ($fields as $key => $value) {
    $fields_string .= urlencode($key) . '=' . urlencode($value) . '&';
}
rtrim($fields_string, '&');
echo $fields_string;

echo "<br>";
echo $data;
echo "<br>";
echo "<br>";
$ch = curl_init();
//curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
//curl_setopt($ch, CURLOPT_POST, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0',
'Accept: application/json, text/javascript, */*; q=0.01',
'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
'X-Requested-With: XMLHttpRequest'
));


$result = curl_exec($ch);
curl_close($ch);
echo $result;
echo "<br>";
echo "-------------------------";
echo "<br>";

echo $cookie_file;
print_r($_COOKIE);
echo "<br>";

 //STEP 2 -- GET DATA
echo "<br>";
echo "-------------------------";
echo "<br>";
$url = 'https://starline-online.ru/device?tz=300&_=1512134458324'; 
// это собственно страница, на которую нам надо заходить уже залогинившись
   $ch = curl_init();   
  curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
//   curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
//curl_setopt($ch, CURLOPT_POST, count($fields));
//curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
   curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
//'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0',
//'Accept: application/json, text/javascript, */*; q=0.01',
//'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
//'X-Requested-With: XMLHttpRequest'

':authority:starline-online.ru',
':method:GET',
':path:/device?tz=300&_=1513105401911',
':scheme:https',
'accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'accept-encoding:gzip, deflate, br',
'accept-language:ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
'cookie:____замените на токен из отладчика браузера____lang=ru',



));

   $result = curl_exec($ch);
   curl_close($ch);
//SaveFile(ROOT . 'cached/dialog_result.txt', $result); // сохранять в файл не обязательно, это я делаю просто для того чтобы посмотреть что внутри

@unlink($cookie_file);


echo $result;
echo "<br>";
echo "-------------------------";
echo "<br>";
$data=json_decode($result,true);
//$objn=$data[0]['id'];
//print_r($data);
//$objn=$data[0]['answer']['devices']['alias'];
  $name=$data['answer']['devices'][0]['alias'];
$names=$data['answer']['devices'][0];
$imei=$data['answer']['devices'][0]['imei'];
$battery=$data['answer']['devices'][0]['battery'];
$gps_lvl=$data['answer']['devices'][0]['gps_lvl'];
$mon_type=$data['answer']['devices'][0]['mon_type'];
$phone=$data['answer']['devices'][0]['phone'];
$ts_activity=$data['answer']['devices'][0]['ts_activity'];
$typename=$data['answer']['devices'][0]['typename'];
$ctemp=$data['answer']['devices'][0]['ctemp'];
$etemp=$data['answer']['devices'][0]['etemp'];
$imei=$data['answer']['devices'][0]['imei'];
$imei=$data['answer']['devices'][0]['imei'];
$imei=$data['answer']['devices'][0]['imei'];
$imei=$data['answer']['devices'][0]['imei'];


//echo $ctemp;
//echo $etemp;
//echo $imei;
//echo $name;
//echo $objn.'----------------';
//addClassObject('livegpstracks',$objn);
//$src=$data[0];

echo "<br>";
echo "-------------------------";
echo "<br>";

$names=$data['answer']['devices'];

foreach ($names as $key=> $value ) {   
// echo $key.':'.$value. "<br>";
 foreach ($value as $key2=> $value2 ) {   
  if ($key2=='alias' )  {
   echo $key2.':'.$value2. "<br>";
   $devicename=$value2;
   if (gg($devicename."."."alias")<>$devicename) {
    echo "добавляем новое устройство ".$devicename;
   addClassObject('starline-online',$devicename);}
   }
  if (is_array($value2))
  {echo "это массив";
   echo "<br>";
foreach ($value2 as $key3=> $value3 ) { 

echo $key3.':'.$value3. "<br>";
 
 
sg($devicename.'.'.$key3,$value3);  
///                                       
  if (is_array($value3))
  {echo "это массив";
   echo "<br>";
foreach ($value3 as $key4=> $value4 ) { 
 echo $key4.':'.$value4. "<br>";
sg($devicename.'.'.$key4,$value4);  
}}
                                       
///                                       
                                       
}
    
   
  } else {
  echo $devicename.'.'.$key2."::::".$value2;
  echo "<br>";
  sg($devicename.'.'.$key2,$value2);
   

   
  }
}
$url = BASE_URL . '/gps.php?latitude=' . gg($devicename.'.y')
        . '&longitude=' . gg($devicename.'.x')
        . '&altitude=' . gg($devicename.'.altitude')
        . '&accuracy=' . gg($devicename.'.gpsaccuracy') 
        . '&provider=' . gg($devicename.'.gsm_lvl') 
        . '&speed='  .gg($devicename.'.speed') 
        . '&battlevel=' . gg($devicename.'.battery') 
        . '&charging=' . gg($devicename.'.charging') 
        . '&deviceid=' .gg($devicename.'.imei')  ;

getURL($url, 0);   
}     

//////////////
 
Также запуск/остановка двигателя:
СпойлерПоказать

Код: Выделить всё

$cookie_file = ROOT . 'cached/starline_cookie.txt'; //в этом файле будет храниться сессия
//$cookie_file = 'dialog_cookie.txt'; //в этом файле будет храниться сессия
// STEP 1 -- LOGIN

$url = 'https://starline-online.ru/user/login'; // ссылка, по которой нам надо зайти
// задаём поля, которые будут отправлены при логине     
$fields = array(
    'LoginForm[login]' => gg('balance.StarlineLogin'), // номер телефона
    'LoginForm[rememberMe]' => 'on', 
 'LoginForm[pass]' =>  gg('balance.StarlinePass')

);

print_r($fields);
echo "<br>";
$fields_string = '';
foreach ($fields as $key => $value) {
    $fields_string .= urlencode($key) . '=' . urlencode($value) . '&';
}
rtrim($fields_string, '&');
echo $fields_string;

echo "<br>";
echo $data;
echo "<br>";
echo "<br>";
$ch = curl_init();
//curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
//curl_setopt($ch, CURLOPT_POST, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0',
'Accept: application/json, text/javascript, */*; q=0.01',
'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
'X-Requested-With: XMLHttpRequest'
));


$result = curl_exec($ch);
curl_close($ch);
echo $result;
echo "<br>";
echo "-------------------------";
echo "<br>";

echo $cookie_file;
print_r($_COOKIE);
echo "<br>";



 //STEP 2 -- GET DATA
echo "<br>";
echo "-------------------------";
echo "<br>";
$url = 'https://starline-online.ru/device/22198231/executeCommand';  
$fields = array(
    'value' => '1', // номер телефона
    'action' => 'ign', 
 'password' =>  ''
);

print_r($fields);
echo "<br>";
$fields_string = '';
foreach ($fields as $key => $value) {
    $fields_string .= urlencode($key) . '=' . urlencode($value) . '&';
}
echo $fields_string;
echo "<br>---- <br>";
$fields_string=substr($fields_string,0,-1);
echo $fields_string;
echo "<br>---- <br>";

// это собственно страница, на которую нам надо заходить уже залогинившись
   $ch = curl_init();   
  curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
//   curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
//curl_setopt($ch, CURLOPT_POST, count($fields));
//curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
   curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
':authority:starline-online.ru',
':method:POST',
':path:/device/номер своей железяки/executeCommand',
':scheme:https',
'accept:application/json, text/javascript, */*; q=0.01',
'accept-encoding:gzip, deflate, br',
'accept-language:ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
'content-length:28',
'content-type:application/x-www-form-urlencoded; charset=UTF-8',
'cookie:t=1db1dfcde1eff54cd7cfbafcb69b1271; ____замените на токен из отладчика браузера____lang=ru',
'origin:https://starline-online.ru',
'referer:https://starline-online.ru/site/map',
'user-agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36',
'x-requested-with:XMLHttpRequest'
));

   $result = curl_exec($ch);
   curl_close($ch);
//SaveFile(ROOT . 'cached/dialog_result.txt', $result); // сохранять в файл не обязательно, это я делаю просто для того чтобы посмотреть что внутри

@unlink($cookie_file);

echo $result;

//////////////
//////////////
//////////////
//////////////
//////////////

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

Есть одна не решенная проблема - во всех вторых запросах взят header из отладчика браузера.
Почему-то ссылка на куки файл первой авторизации у меня не срабатывет. Может быть кто-то более разбирающийся сможет корректно настроить сохранение и использование куки-файла. В моем примере записаны куки моей сессии, поэтому я их потер, что-бы у меня продолжало поработать )

Иногда выскакивает капча, но она пропадает, если залогиниться с компьютера или через какое-то время.
Последний раз редактировалось directman66 Ср дек 13, 2017 1:37 pm, всего редактировалось 4 раза.
За это сообщение автора directman66 поблагодарил:
C_3AXAPOB (Пт янв 19, 2018 1:43 am)
Рейтинг: 1.16%
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: gsm сигнализации старлайн-> md

Сообщение directman66 » Пт дек 01, 2017 5:27 pm

Полагаю, требуется что-то типа такого:
СпойлерПоказать

Код: Выделить всё

$cookie=ROOT.'cached/starline.txt';
$url='https://starline-online.ru/device?tz=300&_=1512134458324'; 

//echo $url;
//в обратную сторону 
//url_request = "http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address=" + RussianStringToURLEncode(city) + " " + RussianStringToURLEncode(street)

     
  $fields = array(
       'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0',
    'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',   
    'X-Requested-With: XMLHttpRequest',
       'LoginForm[login]: ',
    'LoginForm[pass]: ',
    'remember: 1'
     );

foreach($fields as $key=>$value)
{ $fields_string .= $key.'='.urlencode($value).'&'; }
echo $fields_string;
echo '\n';

rtrim($fields_string, '&');

   $ch = curl_init();   
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
   curl_setopt($ch, CURLOPT_POST, count($fields));   
   curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
   curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
   $result = curl_exec($ch);
echo $result;

 
*** Сообщение запрещено. Сообщение похоже на спам. ***
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: gsm сигнализации старлайн-> md

Сообщение directman66 » Чт дек 07, 2017 9:12 am

Кто разбирается, помогите залогиниться на сайте https://starline-online.ru/
СпойлерПоказать

Код: Выделить всё

$url = 'https://starline-online.ru/device?tz=300&_=1512134458324'; // ссылка, по которой нам надо зайти
// задаём поля, которые будут отправлены при логине     
$fields = array(
    'LoginForm[login]' => gg('balance.StarlineLogin'), // номер телефона
    'LoginForm[rememberMe]' => 'off', 
 'LoginForm[pass]' =>  gg('balance.StarlinePass')

);

$fields_string = '';
foreach ($fields as $key => $value) {
    $fields_string .= $key . '=' . urlencode($value) . '&';
}
rtrim($fields_string, '&');

$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
 
':authority:starline-online.ru',
':method:POST',
':path:/user/login',
':scheme:https',
'accept:application/json, text/javascript, */*; q=0.01',
'accept-encoding:gzip, deflate, br',
'accept-language:ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
'content-length:95',
'content-type:application/x-www-form-urlencoded; charset=UTF-8',
'cookie:PHPSESSID=ht2p71s1s04e4cqcm578dgh8l3; lang=ru',
'origin:https://starline-online.ru',
'referer:https://starline-online.ru/',
'user-agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36',
'x-requested-with:XMLHttpRequest'
 
 
 
//    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
//    'Accept-Encoding: gzip, deflate',
//    'Connection: Close'
));


$result = curl_exec($ch);
curl_close($ch);
echo $result; 
Получаю forbidden. Знающие, подскажите.

*** Сообщение запрещено. Сообщение похоже на спам. ***
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: gsm сигнализации старлайн-> md

Сообщение directman66 » Чт дек 07, 2017 11:48 am

Знающие люди, помогите залогиниться на сайте телематики. Я уже теряюсь в догадках как это сделать.
СпойлерПоказать

Код: Выделить всё

$cookie_file = ROOT . 'cached/dialog_cookie.txt'; //в этом файле будет храниться сессия
//$cookie_file = 'dialog_cookie.txt'; //в этом файле будет храниться сессия
// STEP 1 -- LOGIN

$url = 'https://starline-online.ru/user/login'; // ссылка, по которой нам надо зайти
// задаём поля, которые будут отправлены при логине     
$fields = array(
    'LoginForm[login]' => gg('balance.StarlineLogin'), // номер телефона
    'LoginForm[rememberMe]' => 'on', 
 'LoginForm[pass]' =>  gg('balance.StarlinePass')

);

$fields_string = '';
foreach ($fields as $key => $value) {
    $fields_string .= $key . '=' . urlencode($value) . '&';
}
rtrim($fields_string, '&');

$data="LoginForm%5Blogin%5D=xpenn%40e1.ru&LoginForm%5BrememberMe%5D=on&LoginForm%5Bpass%5D=662583ABca";

$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_URL, $url);
//curl_setopt($ch, CURLOPT_POST, count($fields));
//..curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_POST, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
':authority:starline-online.ru',
':method:POST',
':path:/user/login',
':scheme:https',
'accept:application/json, text/javascript, */*; q=0.01',
'accept-encoding:gzip, deflate, br',
'accept-language:ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
'content-length:95',
'content-type:application/x-www-form-urlencoded; charset=UTF-8',
'cookie:PHPSESSID=ht2p71s1s04e4cqcm578dgh8l3; lang=ru',
'origin:https://starline-online.ru',
'referer:https://starline-online.ru/',
'user-agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36',
'x-requested-with:XMLHttpRequest'

//    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
//    'Accept-Encoding: gzip, deflate',
//    'Connection: Close'
));


$result = curl_exec($ch);
curl_close($ch);
echo $result;

// STEP 2 -- GET DATA

$url = 'https://starline-online.ru/device?tz=300&_=1512134458324'; 
// это собственно страница, на которую нам надо заходить уже залогинившись
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
$result = curl_exec($ch);
curl_close($ch);
//SaveFile(ROOT . 'cached/dialog_result.txt', $result); // сохранять в файл не обязательно, это я делаю просто для того чтобы посмотреть что внутри

@unlink($cookie_file);


echo $result;
 
*** Сообщение запрещено. Содержит контактную информацию. Сообщение похоже на спам. ***
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: gsm сигнализации старлайн-> md

Сообщение directman66 » Вт дек 12, 2017 8:34 pm

Вроде получилось залогиниться на сайте старлайна.Далее пытаюсь запросить страницу с параметрами json, в ответ приходит какая-то ерунда. Похоже неправильные user-агент передается.
СпойлерПоказать

Код: Выделить всё

$cookie_file = ROOT . 'cached/dialog_cookie.txt'; //в этом файле будет храниться сессия
//$cookie_file = 'dialog_cookie.txt'; //в этом файле будет храниться сессия
// STEP 1 -- LOGIN

$url = 'https://starline-online.ru/user/login'; // ссылка, по которой нам надо зайти
// задаём поля, которые будут отправлены при логине     
$fields = array(
    'LoginForm[login]' => gg('balance.StarlineLogin'), // номер телефона
    'LoginForm[rememberMe]' => 'on', 
 'LoginForm[pass]' =>  gg('balance.StarlinePass')

);

print_r($fields);
echo "<br>";
$fields_string = '';
foreach ($fields as $key => $value) {
    $fields_string .= urlencode($key) . '=' . urlencode($value) . '&';
}
rtrim($fields_string, '&');
echo $fields_string;

echo "<br>";
echo $data;
echo "<br>";
echo "<br>";
$ch = curl_init();
//curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
//curl_setopt($ch, CURLOPT_POST, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
':authority:starline-online.ru',
':method:POST',
':path:/user/login',
':scheme:https',
'accept:application/json, text/javascript, */*; q=0.01',
'accept-encoding:gzip, deflate, br',
'accept-language:ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
'content-length:95',
//'content-type:application/x-www-form-urlencoded; charset=UTF-8',
//'cookie:PHPSESSID=ht2p71s1s04e4cqcm578dgh8l3; lang=ru',
'origin:https://starline-online.ru',
'referer:https://starline-online.ru/',
'user-agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'
));


$result = curl_exec($ch);
curl_close($ch);
echo $result;
echo "<br>";
echo "-------------------------";
echo "<br>";

 //STEP 2 -- GET DATA

$url = 'https://starline-online.ru/device?tz=300&_=1512134458324'; 
// это собственно страница, на которую нам надо заходить уже залогинившись
   $ch = curl_init();   
   curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
//   curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
//curl_setopt($ch, CURLOPT_POST, count($fields));
//curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
   curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
':authority:starline-online.ru',
':method:POST',
':path:/user/login',
':scheme:https',
'accept:application/json, text/javascript, */*; q=0.01',
//'accept-encoding:gzip, deflate, br',
'accept-language:ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
'content-length:95',
'content-type:application/x-www-form-urlencoded; charset=UTF-8',
//'cookie:PHPSESSID=ht2p71s1s04e4cqcm578dgh8l3; lang=ru',
'origin:https://starline-online.ru',
'referer:https://starline-online.ru/',
'user-agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'
));
   $result = curl_exec($ch);
   curl_close($ch);
//SaveFile(ROOT . 'cached/dialog_result.txt', $result); // сохранять в файл не обязательно, это я делаю просто для того чтобы посмотреть что внутри

@unlink($cookie_file);


echo $result;
 
*** Сообщение запрещено. Сообщение похоже на спам. ***
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: gsm сигнализации старлайн-> md

Сообщение directman66 » Вт дек 12, 2017 8:56 pm

завести автомобиль
СпойлерПоказать

Код: Выделить всё

$cookie_file = ROOT . 'cached/dialog_cookie.txt'; //в этом файле будет храниться сессия
//$cookie_file = 'dialog_cookie.txt'; //в этом файле будет храниться сессия
// STEP 1 -- LOGIN

$url = 'https://starline-online.ru/user/login'; // ссылка, по которой нам надо зайти
// задаём поля, которые будут отправлены при логине     
$fields = array(
    'LoginForm[login]' => gg('balance.StarlineLogin'), // номер телефона
    'LoginForm[rememberMe]' => 'on', 
 'LoginForm[pass]' =>  gg('balance.StarlinePass')
);

print_r($fields);
echo "<br>";
$fields_string = '';
foreach ($fields as $key => $value) {
    $fields_string .= urlencode($key) . '=' . urlencode($value) . '&';
}
rtrim($fields_string, '&');
echo $fields_string;

echo "<br>";
echo $data;
echo "<br>";
echo "<br>";
$ch = curl_init();
//curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
//curl_setopt($ch, CURLOPT_POST, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
':authority:starline-online.ru',
':method:POST',
':path:/user/login',
':scheme:https',
'accept:application/json, text/javascript, */*; q=0.01',
'accept-encoding:gzip, deflate, br',
'accept-language:ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
'content-length:95',
//'content-type:application/x-www-form-urlencoded; charset=UTF-8',
//'cookie:PHPSESSID=ht2p71s1s04e4cqcm578dgh8l3; lang=ru',
'origin:https://starline-online.ru',
'referer:https://starline-online.ru/',
'user-agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'
));


$result = curl_exec($ch);
curl_close($ch);
echo $result;
echo "<br>";
echo "-------------------------";
echo "<br>";

 //STEP 2 -- GET DATA

//$url = 'https://starline-online.ru/device?tz=300&_=1512134458324'; 

$url = 'https://starline-online.ru/device/1512134458324/executeCommand'; 
$fields = array(
    'value' => '1', // номер телефона
    'action' => 'ign', 
 'password' =>  '');

print_r($fields);
echo "<br>";
$fields_string = '';
foreach ($fields as $key => $value) {
    $fields_string .= urlencode($key) . '=' . urlencode($value) . '&';
}

// это собственно страница, на которую нам надо заходить уже залогинившись
   $ch = curl_init();   
   curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
//  curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
   curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0',
'Accept: application/json, text/javascript, */*; q=0.01',
'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
'X-Requested-With: XMLHttpRequest'
));
   $result = curl_exec($ch);
   curl_close($ch);
//SaveFile(ROOT . 'cached/dialog_result.txt', $result); // сохранять в файл не обязательно, это я делаю просто для того чтобы посмотреть что внутри

@unlink($cookie_file);


echo $result;
 
*** Сообщение запрещено. Сообщение похоже на спам. ***
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: GSM сигнализация старлайн->MD РАБОТАЕТ,но требует дорабо

Сообщение directman66 » Ср дек 13, 2017 12:31 pm

В общем все заработало, инструкция в 3 сообщении. Модер, можешь удалить мои неактивные сообщения, которые требуют одобрения модератора.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
anneksiya82
Сообщения: 32
Зарегистрирован: Вс фев 28, 2016 8:11 am
Благодарил (а): 1 раз
Поблагодарили: 3 раза

Re: GSM сигнализация старлайн->MD РАБОТАЕТ,но требует дорабо

Сообщение anneksiya82 » Ср дек 20, 2017 7:44 am

Ребята помогите.
Не получается заставить скрипт работать.
Суть MD установлен на апельсинки ( на Debian).
Пытаюсь заставить работать данный скрипты из 3 сообщения (получение координат ).
Куки файл подложил: ROOT . 'cached/starline_cookie.txt' (С браузера с хрома размер ~ 2 МБ )
И поправил строку заполнение массива типа curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'cookie:dce05fce804544545646d4fad6e633lang=ru'

Скрипт не работает:

Не могу понять что не так
Вложения
line.jpg
При запуски скрипта вижу следующая картину.
line.jpg (101.84 КБ) 7432 просмотра
Ответить