Makag

Adult webmaster in Social Media - Tips & Tricks

Занести всех участников сообщества в чёрный список с отображением сообщения пользователю.

Во-первых, для чего это: бывает, нужно дать знать участникам сообщества о том, что отныне новости будут выкладываться в другом месте. Если делать упоминания пользователей на стене сообщества или массово рассылать сообщения в л/с — это может быть воспринято как спам с последующим баном.

Во-вторых, логика и принципы работы скрипта: при первом запуске заносятся в ч/с сообщества первые 10 аккаунтов, с наиболее короткими id (так называемые «малознаки»). Рядом в файл записывается значение смещения, с тем, чтобы при последующем выполнении скрипта в ч/с занести уже второй десяток пользователей… и так далее. По умолчанию срок блокировки — 142 дня. Конечно, можно блокировать и навсегда, но при таком раскладе пользователи будут одновременно исключаться из сообщества и по-сути никогда не увидят предназначенное им сообщение (горстку фанатиков, которые будут повторно искать сообщество через поиск — во внимание не беру).

Использование: хостинг с cronjob и php 5.4(5.6), ставим на крон каждую минуту и наслаждаемся результатом. Настройки находятся в начале файла.


Наглядно, результат:



Собственно код:

<?php
$token = '7cb754317a9f52a9ea0'; // токена начальника
$guid = '98910410';	// цифровой айди сообщества
$message = "Наш новый адрес: vk.com/hmoody";	//  сообщение пользователю для ч/с
$timer = "12345678";	// бан на 142 дня.  бан на сутки 86400, бан на неделю неделю 604800, бан на месяц 2629743. но не больше чем на год 

function vkapi($method) {
		$ch = curl_init("https://api.vk.com/method/".$method);
		curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
		curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
		curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
		$response = curl_exec($ch);
		curl_close($ch);
		return $response; }

$cur_unix = time();
$timeblock = $cur_unix + $timer;
$encoded_message = urlencode($message);
$ridding_inis = fopen('bginis.txt', 'r'); $uns_inis = fgets($ridding_inis, 32096); fclose($ridding_inis); $inis = unserialize($uns_inis);

if (is_array($inis)) { $offset = (int) $inis[set];
$getuids = vkapi('groups.getMembers?group_id='.$guid.'&sort=id_asc&count=10&offset='.$offset.'&access_token='.$token.'&v=5.59');
$list_json = json_decode($getuids, true); $list_rslt = $list_json['response']['items'];
foreach ($list_rslt as $ruid) { 
$gotoban = vkapi('groups.banUser?group_id='.$guid.'&user_id='.$ruid.'&end_date='.$timeblock.'&reason=0&comment='.$encoded_message.'&comment_visible=1&access_token='.$token.'&v=5.62'); 
usleep(335000); set_time_limit(30); } 
$inis[set] = $offset + 10; $ss_inis = serialize($inis); $winis = fopen("bginis.txt", "w+b"); fwrite($winis,$ss_inis); fclose($winis); }

else { $offset = '0';
$getuids = vkapi('groups.getMembers?group_id='.$guid.'&sort=id_asc&count=10&offset='.$offset.'&access_token='.$token.'&v=5.59');
$list_json = json_decode($getuids, true); $list_rslt = $list_json['response']['items'];
foreach ($list_rslt as $ruid) { 
$gotoban = vkapi('groups.banUser?group_id='.$guid.'&user_id='.$ruid.'&end_date='.$timeblock.'&reason=0&comment='.$encoded_message.'&comment_visible=1&access_token='.$token.'&v=5.62'); 
usleep(335000); set_time_limit(30); }
$inis[set] = 10; $ss_inis = serialize($inis); $winis = fopen("bginis.txt", "w+b"); fwrite($winis,$ss_inis); fclose($winis);  }
?>


Скачать: blacklistandmessage.zip

P.S. Возможно будет полезно:
что такое токен анкеты вКонтакте и для чего он используется;
регистрация и использование хостинга бегет в картинках.

0 комментариев