type) { //Если это уведомление для подтверждения адреса сервера... case 'confirmation': //...отправляем строку для подтверждения адреса echo $confirmation_token; $log_text = "$today confirmation"; break; //Если это уведомление о новом сообщении на стене... case 'wall_post_new': //...получаем id его автора $user_id = $data->object->from_id; $id_post = $data->object->id; $text_post = $data->object->text; //затем с помощью users.get получаем данные об авторе //$user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$user_id}&v=5.0")); //и извлекаем из ответа его имя //$user_name = $user_info->response[0]->first_name; //заисываем лог $log_text = "$today new message wall - $user_id, $id_post, $text_post"; //скрипт проверяет есть ли запись-репост на стене человека $search_result="0"; //если пользователь не владелец группы (пишем номер группы с минусом в начале если пост пишется от имени группы или свой id если от своего) if ($user_id!=-4589898) { //в строке https://api.vk.com/method/wall.getReposts?owner_id=-123456&v=5.0&count=100&post_id=9999 123456 - номер группы а 9999 номер поста который должны репостить (проверяются люди которые репостнули пост) $ch_search_vk = curl_init( "https://api.vk.com/method/wall.getReposts?owner_id=-123456&v=5.0&count=100&post_id=9999" ); curl_setopt ( $ch_search_vk, CURLOPT_HEADER, false ); curl_setopt ( $ch_search_vk, CURLOPT_RETURNTRANSFER, true ); curl_setopt ( $ch_search_vk, CURLOPT_SSL_VERIFYPEER, false ); $search_vk = curl_exec($ch_search_vk); curl_close($ch_search_vk); $search_vk=json_decode($search_vk); //$search_result = $search_vk->response->items[0]->from_id; $search_result_massiv = $search_vk->response->items; $count_massiv = count($search_result_massiv); //echo "в массиве нашли: $count_massiv
"; //перебираем массив for ($i=0; $i<$count_massiv; $i++) { if ($search_result_massiv[$i]->from_id == $user_id) { //нашли совпадение $search_result="1"; $log_text = "$today ok - search_result = $search_result, user id = $user_id, $text_post"; } //echo $search_result_massiv[$i]->from_id . '
'; } } else {$search_result="1";} if ($search_result!="1") { //не нашли, тогда удаляем $log_text = "$today dell - search_result = $search_result, user id = $user_id, $text_post"; //пока предупреждаем в комментарии $token_2 = '5454455451212154545646544121245454544545451201'; //это уже токен из самой группы, чтобы от имени группы написать комментарий $gruppa_id="-123456"; //номер группы //С помощью messages.send и токена сообщества отправляем ответное сообщение $request_params = array( 'owner_id' => $gruppa_id, 'post_id' => $id_post, 'access_token' => $token_2, 'from_group' => '1', 'message' => 'Сделайте репост, иначе Ваше сообщение будет удалено через 9 секунд - https://vk.com/grupname?w=wall-123456_9999', 'v' => '5.0' ); $get_params = http_build_query($request_params); $ch = curl_init( 'https://api.vk.com/method/wall.createComment?'. $get_params ); curl_setopt ( $ch, CURLOPT_HEADER, false ); curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false ); $data = curl_exec($ch); curl_close($ch); sleep(9); //формируем запрос удалений поста со стены $request_params = array( 'owner_id' => $gruppa_id, 'post_id' => $id_post, 'access_token' => $token_2, 'v' => '5.0' ); $get_params = http_build_query($request_params); $ch = curl_init( 'https://api.vk.com/method/wall.delete?'. $get_params ); curl_setopt ( $ch, CURLOPT_HEADER, false ); curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false ); //curl_setopt ( $ch, CURLOPT_POST, true ); //curl_setopt ( $ch, CURLOPT_POSTFIELDS, $params ); $data = curl_exec($ch); curl_close($ch); } //проверяем есть ли плохое слово в тексте и если есть то удаляем пост $bad_word = "секс,порно,размером,безoткaзный,paзвеcти,тeлочкy,пeнис,оргазм,нaсилуeт,развратная,чпокнул,трах,пенис,член,ceкc,сeкc,куни,cекc,члeн,cекс,сосать,сyчка,сeкс"; $bad_word_massiv = explode(",", $bad_word); $bad_word_count=count($bad_word_massiv); $text_post = mb_strtolower($text_post, 'UTF-8'); $nashli_plohoe_slovo = ""; for($i=0;$i<$bad_word_count;$i++) { if ( strstr($text_post, $bad_word_massiv[$i]) ) {$nashli_plohoe_slovo="1";} } //если длина поста меньше 6 символов if ( strlen(utf8_decode($text_post))<6 ) {$nashli_plohoe_slovo="1";} if ($nashli_plohoe_slovo=="1") { //echo "нашли плохое слово"; //Ключ доступа сообщества $token_2 = '5454455451212154545646544121245454544545451201'; $gruppa_id="-123456"; //$id_post="19016"; //удаляем пост с плохими словами $request_params = array( 'owner_id' => $gruppa_id, 'post_id' => $id_post, 'access_token' => $token_2, 'v' => '5.0' ); $get_params = http_build_query($request_params); $ch = curl_init( 'https://api.vk.com/method/wall.delete?'. $get_params ); curl_setopt ( $ch, CURLOPT_HEADER, false ); curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false ); //curl_setopt ( $ch, CURLOPT_POST, true ); //curl_setopt ( $ch, CURLOPT_POSTFIELDS, $params ); $data = curl_exec($ch); curl_close($ch); //echo $data; $log_text = "$today new message wall - $user_id, $id_post, $text_post - плохое, удаляем"; } //if ( strstr($text_post, $bad_word) ) {echo "нашли плохое слово";} else {echo "не нашли";} //Возвращаем "ok" серверу Callback API echo('ok'); break; } //записываем лог $fp=fopen("$cache_file_log","a"); fwrite($fp, "\r\n" . "$log_text"); fclose($fp); ?>