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);
?>