- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Пишу простенький скрипт на php, чтобы удалять спам со стены в группе. Стена открытая, тематика группы - знакомства и постоянно постят разные пошлые услуги, вот и решил использовать api callback и фильтровать новые посты по массиву ключевых стоп слов.
Кто решал подобные вопросы и как с этим справляетесь?
Скрипт будет полезен, выкладывать его здесь?
Полезен, выкладывать!
Замучился руками чистить (знакомства)
Полезен, выкладывать!
Замучился руками чистить (знакомства)
Хорошо, сейчас его еще допилю, за выходные проверю и в понедельник выложу + постараюсь расписать что да как чтобы он работал (ключи от ВК разные получить).
Также можно сделать чтобы он от обратного работал, например если нету ключевой фразы то пост удаляется.
Так-же можно сделать что-бы он от обратного работал, например если нету ключевой фразы то пост удаляется.
Главное чтобы без таких же ошибок был.
Главное чтобы без таких же ошибок был.
Спасибо. Торопился.
---------- Добавлено 13.01.2017 в 14:43 ----------
Для работы скрипта нужно:
- создать файл рядом со скриптом log.inc
- получить ключ api callback в настройках группы ($confirmation_token)
- получить ключ профиля - администратора группы, для удаления постов ($token_2)
- настроить, пользоваться.
(В ближайшее время напишу статью и распишу поподробнее, как всё это настроить.)
Код:
<?php
//set_time_limit(10800);
//Header('Content-Type: text/html; charset=utf-8');
$cache_file_log="log.inc";
$today = date("H:i:s d-m-Y");
$log_text = "$today proverka";
if (!isset($_REQUEST)) {
return;
}
//Строка для подтверждения адреса сервера из настроек Callback API
$confirmation_token = '12345678';
//Получаем и декодируем уведомление
$data = json_decode(file_get_contents('php://input'));
//Проверяем, что находится в поле "type"
switch ($data->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";
//проверяем есть ли плохое слово в тексте и если есть то удаляем пост
$bad_word = "секс,порно,размером,безoткaзный,paзвеcти,тeлочкy,мeтод,пeнис,оргазм,нaсилуeт,постоянного партнера,имeть,развратная,чпокнул,встречусь с симпатичным,любовника,очень хочется,повиртим,трах,пенис,член,ceкc,сeкc,куни,cекc,члeн,cекс";
$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 = 'gjfbif5dc887328d4d5d12dgujr9828c5cae6378bc1265416c725d506514744f434a8e6tyhnf56c35ebda';
$gruppa_id="-1234567";
//С помощью messages.send и токена сообщества отправляем ответное сообщение
$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);
?>
Попробуй вставить в quotes, а не в php
а чем не угодило использование встроенного фильтра стоп-слов?
а чем не угодило использование встроенного фильтра стоп-слов?
Он работает только на комментарии а на посты не реагирует.
Дополнил текстовкой и описаловом, первый пост подправить не могу (((
Полная инструкция тут - http://www.bubasik.com/skript-php-dlya-vkontakta-avto-udalenie-spama-so-steny-po-api-callback/
Дополнил:
Получить ключ api callback от группы:
Заходим в настройки группы > Работы с API > Ключи доступа > Создать ключ
Получить access_token от своего аккаунта вконтакте не так сложно:
Вам нужно создать Standalone-приложение. С другими работать не будет.
После — переходите по ссылке
https://oauth.vk.com/authorize?client_id=ИД_ВАШЕГО_ПРИЛОЖЕНИЯ&scope=notify,friends,photos,offline,wall&redirect_uri=blank.html&display=popup&response_type=token
После этого копируете из адресной строки token (находится между access_token= и &expires_in)
Работа скрипта:
Вгруппу посетитель пишет пост > событие о том что появился пост с его идентификатором и текстом уходит на адрес скрипта по callback api > скрипт принимает параметры и ищет в тексте запрещенные фразы, если нашел > по api вконтакту с использованием токена аккаунта администратора группы удаляем данный пост.
У кого заработал? Может кто начал использовать для других посетителей форума расскажет как его расширил и использует.
Дополнил функционалом:
Сообщение со стены самоудаляется если пользователь не сделал репост определенной записи.
Работает так:
- Пользователь пишет пост в группу
- Скрипт ищет на его стене ключевые фразы (текст репоста)
- Если не находит, то появляется комментарий к его записи от имени группы что необходимо сделать репост и через 9 секунд запись удалиться
- Через 9 секунд запись удаляется.
Таким способом отсеиваются почти все спаммеры + дополнительная реклама группы.
За такое группу не заблочат?
Если кому надо, выложу код.
bukan, куда вам можно отписать, чтобы пообщаться в пм?