Makag

Adult webmaster in Social Media - Tips & Tricks

Парсер новых участников любого сообщества вКонтакте

Немного теории. Получить список участников сообщества можно с помощью метода groups.getMembersvk.com/dev/groups.getMembers с использованием параметра sort, где:
id_asc — в порядке возрастания id;
id_desc — в порядке убывания id;
time_asc — в хронологическом порядке по вступлению в сообщество;
time_desc — в анти-хронологическом порядке по вступлению в сообщество.

Сортировка по time_asc и time_desc — возможна только при вызове метода от имени модератора/редактора/админа сообщества, поэтому если необходимо отслеживать новых участников в чужом сообществе — нужно придумать обходной путь -)

Логика работы нижеприведённого скрипта следующая:
— собираем полный список участников сообщества, записываем его (service/glist.txt);
— при следующем выполнении — вновь собираем список участников сообщества и сравниваем его с предыдущим списком — результат сравнения (id пользователей, которых не было при предыдущей проверке) — записываем в файл (service/diferent.txt);

Настройка и использование:
userlist.php — в начале файла указать токен любой анкеты, с которой будет происходить парсинг и цифровой id сообщества, поставить на cron например раз в сутки;
showdif.php — собственно отображение списка новых id, открывать в адресной строке браузера;
в папке service — два файла glist.txt и diferent.txt — установить права доступа на файлы 777.

Листинг userlist.php:

<?
	
$token = 'd04870d7d541d78803713fccf97c716dd'; // токен анкеты
$guid = '58394232'; // цифровой id сообщества


$page = 0; // равшана мана  не знать щито это трогать не нада
$limit = 1000; // равшана мана  не знать щито это трогать не нада

do 	{
$offset = $page * $limit;
$getlist = vkapi('groups.getMembers?group_id='.$guid.'&sort=id_asc&offset='.$offset.'&count=1000&access_token='.$token.'&v=5.64'); 
$json_get_all = json_decode($getlist, true);  $list = $json_get_all['response']['items']; $countcomm = $json_get_all['response']['count'];
if (!is_array($collectuids)) { $collectuids = $list; }
if (is_array($collectuids)) { $previos = $collectuids;  $collectuids = array_merge($previos, $list); }
  
++$page; usleep(335000); } 
while($countcomm > $offset + $limit );
$uniqs = array_unique($collectuids);

$ridding = fopen('service/glist.txt', 'r'); $unsr = fgets($ridding, 98765432); fclose($ridding); $last = unserialize($unsr);
$different = array_diff($uniqs, $last);

$ss = serialize($uniqs); $wrguids = fopen("service/glist.txt", "w+b"); fwrite($wrguids,$ss); fclose($wrguids);
$ss = serialize($different); $wrguids = fopen("service/diferent.txt", "w+b"); fwrite($wrguids,$ss); fclose($wrguids);

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


Скачать в архиве: new_users_parser.zip

Это важно: при выполнении скрипта раз в сутки вы будете каждый день получать новый список пользователей, которых на момент прошлой проверки еще не было в сообществе. Список в формате «только цифры», если необходимо привести его в иной удобочитаемый вид — воспользуйтесь например волшебными функциями notepad++,
замена
\n
на
\nhttps://vk.com/id



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

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