Advertisement
Guest User

Скрипт php удаления спама вконтакта - расширенный

a guest
Aug 29th, 2017
689
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 8.34 KB | None | 0 0
  1. <?php
  2. //set_time_limit(10800);
  3. //Header('Content-Type: text/html; charset=utf-8');
  4.  
  5. $cache_file_log="log.inc";
  6.  
  7. $today = date("H:i:s d-m-Y");
  8.  
  9. $log_text = "$today proverka";
  10.  
  11.  
  12. if (!isset($_REQUEST)) {
  13.   return;
  14. }
  15.  
  16. //Строка для подтверждения адреса сервера из настроек Callback API
  17. $confirmation_token = '1245451';
  18.  
  19. //Ключ доступа сообщества
  20. $token = '112f798451b749e87154545121215454778778857197ef9fb2cde9e018fef9aa51228ae0e566b2';
  21.  
  22. //Получаем и декодируем уведомление
  23. $data = json_decode(file_get_contents('php://input'));
  24.  
  25. //Проверяем, что находится в поле "type"
  26. switch ($data->type) {
  27.   //Если это уведомление для подтверждения адреса сервера...
  28.   case 'confirmation':
  29.     //...отправляем строку для подтверждения адреса
  30.     echo $confirmation_token;
  31.     $log_text = "$today confirmation";
  32.     break;
  33.  
  34. //Если это уведомление о новом сообщении на стене...
  35.   case 'wall_post_new':
  36.     //...получаем id его автора
  37.     $user_id = $data->object->from_id;
  38.    
  39.     $id_post = $data->object->id;
  40.     $text_post = $data->object->text;
  41.     //затем с помощью users.get получаем данные об авторе
  42.     //$user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$user_id}&v=5.0"));
  43.  
  44. //и извлекаем из ответа его имя
  45.     //$user_name = $user_info->response[0]->first_name;
  46.  
  47. //заисываем лог
  48. $log_text = "$today new message wall - $user_id, $id_post, $text_post";
  49.  
  50.  
  51. //скрипт проверяет есть ли запись-репост на стене человека
  52. $search_result="0";
  53.  
  54. //если пользователь не владелец группы (пишем номер группы с минусом в начале если пост пишется от имени группы или свой id если от своего)
  55. if ($user_id!=-4589898) {
  56. //в строке https://api.vk.com/method/wall.getReposts?owner_id=-123456&v=5.0&count=100&post_id=9999 123456 - номер группы а 9999 номер поста который должны репостить (проверяются люди которые репостнули пост)
  57.               $ch_search_vk = curl_init( "https://api.vk.com/method/wall.getReposts?owner_id=-123456&v=5.0&count=100&post_id=9999" );
  58.               curl_setopt ( $ch_search_vk, CURLOPT_HEADER, false );
  59.               curl_setopt ( $ch_search_vk, CURLOPT_RETURNTRANSFER, true );
  60.               curl_setopt ( $ch_search_vk, CURLOPT_SSL_VERIFYPEER, false );
  61.               $search_vk = curl_exec($ch_search_vk);
  62.               curl_close($ch_search_vk);
  63.               $search_vk=json_decode($search_vk);
  64.              
  65. //$search_result = $search_vk->response->items[0]->from_id;
  66. $search_result_massiv = $search_vk->response->items;
  67.  
  68. $count_massiv = count($search_result_massiv);
  69. //echo "в массиве нашли: $count_massiv<br>";
  70.  
  71. //перебираем массив
  72.     for ($i=0; $i<$count_massiv; $i++)
  73.         {
  74.         if ($search_result_massiv[$i]->from_id == $user_id) {
  75.             //нашли совпадение
  76.             $search_result="1";
  77.             $log_text = "$today ok - search_result = $search_result, user id = $user_id, $text_post";
  78.             }
  79.         //echo $search_result_massiv[$i]->from_id . '<br>';
  80.         }
  81.  
  82. } else {$search_result="1";}
  83.  
  84. if ($search_result!="1") {
  85.     //не нашли, тогда удаляем
  86.     $log_text = "$today dell - search_result = $search_result, user id = $user_id, $text_post";
  87.     //пока предупреждаем в комментарии
  88.      $token_2 = '5454455451212154545646544121245454544545451201'; //это уже токен из самой группы, чтобы от имени группы написать комментарий
  89.      $gruppa_id="-123456"; //номер группы
  90.      
  91.       //С помощью messages.send и токена сообщества отправляем ответное сообщение
  92.           $request_params = array(
  93.             'owner_id' => $gruppa_id,
  94.             'post_id' => $id_post,
  95.             'access_token' => $token_2,
  96.             'from_group' => '1',
  97.             'message' => 'Сделайте репост, иначе Ваше сообщение будет удалено через 9 секунд - https://vk.com/grupname?w=wall-123456_9999',
  98.             'v' => '5.0'
  99.           );
  100.      
  101.       $get_params = http_build_query($request_params);
  102.      
  103.               $ch = curl_init( 'https://api.vk.com/method/wall.createComment?'. $get_params );
  104.               curl_setopt ( $ch, CURLOPT_HEADER, false );
  105.               curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
  106.               curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
  107.               $data = curl_exec($ch);
  108.               curl_close($ch);
  109.    
  110.    
  111.     sleep(9);
  112.       //формируем запрос удалений поста со стены
  113.           $request_params = array(
  114.             'owner_id' => $gruppa_id,
  115.             'post_id' => $id_post,
  116.             'access_token' => $token_2,
  117.             'v' => '5.0'
  118.           );
  119.      
  120.       $get_params = http_build_query($request_params);
  121.      
  122.               $ch = curl_init( 'https://api.vk.com/method/wall.delete?'. $get_params );
  123.               curl_setopt ( $ch, CURLOPT_HEADER, false );
  124.               curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
  125.               curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
  126.               //curl_setopt ( $ch, CURLOPT_POST, true );
  127.               //curl_setopt ( $ch, CURLOPT_POSTFIELDS, $params );
  128.               $data = curl_exec($ch);
  129.               curl_close($ch);    
  130.    
  131.     }
  132.    
  133.    
  134.  
  135.  
  136.  
  137.  
  138.  
  139. //проверяем есть ли плохое слово в тексте и если есть то удаляем пост
  140.  
  141. $bad_word = "секс,порно,размером,безoткaзный,paзвеcти,тeлочкy,пeнис,оргазм,нaсилуeт,развратная,чпокнул,трах,пенис,член,ceкc,сeкc,куни,cекc,члeн,cекс,сосать,сyчка,сeкс";
  142. $bad_word_massiv = explode(",", $bad_word);
  143. $bad_word_count=count($bad_word_massiv);
  144. $text_post = mb_strtolower($text_post, 'UTF-8');
  145.  
  146. $nashli_plohoe_slovo = "";
  147.   for($i=0;$i<$bad_word_count;$i++) {
  148. if ( strstr($text_post, $bad_word_massiv[$i]) ) {$nashli_plohoe_slovo="1";}
  149.     }
  150.    
  151. //если длина поста меньше 6 символов
  152. if ( strlen(utf8_decode($text_post))<6 ) {$nashli_plohoe_slovo="1";}    
  153.  
  154. if ($nashli_plohoe_slovo=="1") {
  155.  
  156.     //echo "нашли плохое слово";
  157.           //Ключ доступа сообщества
  158.       $token_2 = '5454455451212154545646544121245454544545451201';
  159.      
  160.       $gruppa_id="-123456";
  161.       //$id_post="19016";
  162.      
  163.      
  164.       //удаляем пост с плохими словами
  165.           $request_params = array(
  166.             'owner_id' => $gruppa_id,
  167.             'post_id' => $id_post,
  168.             'access_token' => $token_2,
  169.             'v' => '5.0'
  170.           );
  171.      
  172.       $get_params = http_build_query($request_params);
  173.      
  174.               $ch = curl_init( 'https://api.vk.com/method/wall.delete?'. $get_params );
  175.               curl_setopt ( $ch, CURLOPT_HEADER, false );
  176.               curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
  177.               curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
  178.               //curl_setopt ( $ch, CURLOPT_POST, true );
  179.               //curl_setopt ( $ch, CURLOPT_POSTFIELDS, $params );
  180.               $data = curl_exec($ch);
  181.               curl_close($ch);
  182.               //echo $data;
  183.     $log_text = "$today new message wall - $user_id, $id_post, $text_post - плохое, удаляем";
  184.     }
  185.    
  186. //if ( strstr($text_post, $bad_word) ) {echo "нашли плохое слово";} else {echo "не нашли";}
  187.  
  188. //Возвращаем "ok" серверу Callback API
  189.     echo('ok');
  190.  
  191. break;
  192. }
  193.  
  194.  
  195. //записываем лог
  196. $fp=fopen("$cache_file_log","a");  
  197. fwrite($fp, "\r\n" . "$log_text");  
  198. fclose($fp);
  199.  
  200. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement