Задать вопрос
@2gaap

Как автоматом удалять пост со стены группы вконтакте если не сделан репост (защита от спама)?

Есть открытая группа вконтакте, на стену постоянно идет спам и удалять его вручную не дело программиста.

Как написать на php скрипт, чтобы он автоматом удалял посты, если например пользователь не сделал репост определенной записи.
(подразумевается что боты пока не умеют делать репост записи и такая защита от спама должна хорошо себя показать + реклама группы).

Не будет ли такое условие нарушением правил вконтакте?
  • Вопрос задан
  • 964 просмотра
Подписаться 1 Оценить 4 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@2gaap Автор вопроса
На основе вот этого - www.bubasik.com/skript-php-dlya-vkontakta-avto-uda...

Сделал так:
- Callback от группы о новом посте
- Берется id пользователя нового поста и проверяется делал ли он репост поста (которого нужно репостнуть) по wall.getReposts
- Если не делал то пишется комментарий к его посту и через несколько секунд пост удаляется.

$ch_search_vk = curl_init( "https://api.vk.com/method/wall.getReposts?owner_id=-номер_группы&v=5.0&count=100&post_id=номер_поста_который_должны_репостнуть" );
              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_massiv = $search_vk->response->items;

$count_massiv = count($search_result_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";
            }
        }


Сделал дополнение, которое проверяет на репост заданной записи, если нет репоста то пишется комментарий от имени группы к посту пользователя а потом через 9 секунд пост пользователя удаляется. Код тут - https://pastebin.com/KjbTd1kz
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽