Пост
Hello :)

PHP

-

Рабочий Getcontact 4.9.7 API на PHP

Мне писали тысячу раз про пост http://serj.ws/content/516, где я на PHP показал как работать с сервером Getcontact, с тех пор они изменили алгоритмы, и очень сильно заморочились, но все таки удалось переписать его на PHP, писал коряво, сори...)

 

 

 

 



<?

/*

     by  SERJ.WS
    
    $AES_KEY и $TOKEN берем в
    
    /data/data/app.source.getcontact/shared_prefs/GetContactSettingsPref.xml

*/


 $AES_KEY = '8c93b9b782b120af99ea274f745d2f4b43d89aa8794ccba97c190c8fccbaXXXX';
 $TOKEN = 'hagoje90c9d2e59aaa7c31cdb71a643f8346af863a423d90c3cceb6XXXX';

 $key = '2Wq7)qkX~cp7)H|n_tc&o+:G_USN3/-uIi~>M+c ;Oq]E{t9)RC_5|lhAA_Qq%_4';
 $PRIVATE_KEY = 2615678;
 $time = time();

 $number="+77012345678";



function decrypt($key, $garble) {
   
   return openssl_decrypt(
    base64_decode($garble),
    "aes-256-ecb",
    $key,
    OPENSSL_RAW_DATA
);

}


function encrypt($key, $garble) {
   
 $method = 'AES-256-ECB';
    $ivSize = openssl_cipher_iv_length($method);
    $iv = openssl_random_pseudo_bytes($ivSize);
   
   return openssl_encrypt(
    $garble,
    "aes-256-ecb",
    $key,
    OPENSSL_RAW_DATA
);

}



function Send_Post($post_url, $post_data,$signature)
 { global $TOKEN,$time;

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $post_url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

 if ($post_data!=""){
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
  }
  
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

 curl_setopt($ch, CURLOPT_HTTPHEADER, array(
 "X-App-Version: 4.9.1",
 "X-Token: ".$TOKEN,
 "X-Os: android 5.0",
 "X-Client-Device-Id: 14130e29cebe9c39",
 "Content-Type: application/json; charset=utf-8",
 "Accept-Encoding: deflate",
 "X-Req-Timestamp: ".$time,
 "X-Req-Signature: ".$signature,
 "X-Encrypted: 1"));

 curl_setopt ($ch, CURLOPT_TIMEOUT, 60);

 $data = curl_exec($ch);
 curl_close($ch);

 return $data;
}




function GetByPhone ($phone) {

 global $time, $TOKEN, $key, $AES_KEY;

 $req='{"countryCode":"RU","source":"search","token":"'.$TOKEN.'","phoneNumber":"'.$phone.'"}';

 $string = ($time.'-'.$req);

 $signature= base64_encode(hash_hmac ( 'sha256' , $string , $key , true ));

 $crypt_data=base64_encode(encrypt(hex2bin($AES_KEY), $req));

 $zprs =Send_Post("https://pbssrv-centralevents.com/v2.5/search", '{"data":"'.$crypt_data.'"}',$signature);

 $zprs=json_decode($zprs);

 $time = time();

 return $zprs->data;

 }



 function GetByPhoneTags ($phone) {

 global $time, $TOKEN, $key, $AES_KEY;

 $req='{"countryCode":"RU","source":"details","token":"'.$TOKEN.'","phoneNumber":"'.$phone.'"}';

 $string = ($time.'-'.$req);

 $signature= base64_encode(hash_hmac ( 'sha256' , $string , $key , true ));

 $crypt_data=base64_encode(encrypt(hex2bin($AES_KEY), $req));

 $zprs =Send_Post("https://pbssrv-centralevents.com/v2.5/number-detail", '{"data":"'.$crypt_data.'"}',$signature);

 $zprs=json_decode($zprs);

 return $zprs->data;

 }



 print_r(json_decode(decrypt(hex2bin($AES_KEY), GetByPhone($number))));
 echo "\n\n\n";
 print_r(json_decode(decrypt(hex2bin($AES_KEY), GetByPhoneTags($number))));



?>
  • Serj, 06 февраля 2020
33 комментария
Avatar
  1. Сергей Лазарев
    Сергей Лазарев
    6 декабря 2020 02:20
    В Декабре 2020 - не робит!
    1. Макс Дулин
      Макс Дулин
      11 декабря 2020 16:12
      всё в декабре 2020 робит. Только недолго, т.к. лимиты пересыхают очень быстро, вероятно потому что через прокладку "pbssrv-centralevents дот ком" токены улетают не напрямую гетконтакту, а сначала разрабу граббера, который юзает их для коммерческой версии граббера, сервиса, бота. Бесплатный сыр в мышеловке, так сказать.
  2. Alan Wyde
    Alan Wyde
    29 апреля 2020 00:44
    Спасибо!
  3. Егор Сосна
    Егор Сосна
    16 апреля 2020 00:28
    Кто может объяснить нубасу, как это запустить?
  4. Yaroslav Gazdiychuk
    Yaroslav Gazdiychuk
    11 апреля 2020 02:36
    Супер
  5. Islam Muhtarov
    Islam Muhtarov
    6 апреля 2020 04:48
    Еще актуален этот алгоритм?
  6. Сергей Подосинников
    Сергей Подосинников
    11 марта 2020 17:44
    А какой ендпоинт для поиска по имени?
  7. Алексей Мокроусов
    Алексей Мокроусов
    1 марта 2020 18:07
    классно работает спасибо
    1. Alfarabi Uzak
      Alfarabi Uzak
      2 марта 2020 00:49
      Что нужно чтобы запустить?
    2. Alfarabi Uzak
      Alfarabi Uzak
      2 марта 2020 00:50
      Сервер имеется. закинул перешел по ссылке белый экран. или нужно по ssh заходить?
    3. Влад Груша
      Влад Груша
      9 марта 2020 22:27
      Alfarabi, НЕ лезь туда, куда тебя не просят.
  8. Андрей Топоривский
    Андрей Топоривский
    27 февраля 2020 06:25
    в каком IDE можно запустить?
  9. Tasma Beats
    Tasma Beats
    9 февраля 2020 23:48
    Народ, помогите, весь день сижу, не могу нихера понять. Дебажил уже и последние версии и ранние. параметр $key - не понимаю где.... параметр $AES-KEY тоже не понима....
    1. Tasma Beats
      Tasma Beats
      9 февраля 2020 23:49
    2. Евгений Агапов
      Евгений Агапов
      10 февраля 2020 20:31
      Tasma, Зачем тебе $key? $key там только для того что бы шифровать и дешифровать полученные данные. Пусть будет какой есть. У меня всё так работает
    3. Tasma Beats
      Tasma Beats
      10 февраля 2020 21:12
      Ок.
    4. Tasma Beats
      Tasma Beats
      10 февраля 2020 21:13
      Спасибо всем кто написал в ЛС :)
    5. Андрей Соколовский
      Андрей Соколовский
      16 февраля 2021 06:01
      привет. где ты это взял (то что на скрине)?
  10. Ivan Medvedev
    Ivan Medvedev
    9 февраля 2020 02:31
    админь, скинь базу готовую getcontact



© SERJ.WS 2011-2021