Информация о участниках сообщества вконтакте в режиме онлайн

от автора

Написал небольшой гаджет получения онлайн пользователей группы, онлайн с телефонов, забаненные и удаленные, страны и когда последний раз были на сайте VK.com.

image

Ради собственного интереса написал небольшой скрипт, с помощью которого можно получить информацию о участниках сообщества.

В своей разработке применил execute и VKScript. Очень плохо, что от execute я смог принять только текстовые поля, пришлось их переводить из строки. А что касается полей которые есть не у всех пользователей, то там было что то вроде этого ",,,,,1,4,,,,,,,5,54,,,,,5,4,,,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,2,,,,,,,". Применил ".match(/\d+/g)".

Чтобы принять какой-то параметр из массива ответа, в VKScript нужно обращаться с помощью @ (Например: arrMembers@.last_seen@.time).

Собственно он вышел такой:

var arrMembers = API.groups.getMembers({"group_id": group_id, "v": "5.27", "sort": "id_asc", "fields": "online,online_mobile,last_seen,country", "count": "1000", "offset": 0}).items; var membersLastSeenTime = arrMembers@.last_seen@.time; var membersOnline = arrMembers@.online; var membersOnlineMobile = arrMembers@.online_mobile; var membersCountry = arrMembers@.country@.id; var membersDeactivated = arrMembers@.deactivated; var offset = 1000; while (offset < 25000 && (offset + memberOnline.length) < members_count) { 	arrMembers = API.groups.getMembers({"group_id": group_id, "v": "5.27", "sort": "id_asc", "fields": "online,online_mobile,last_seen,country", "count": "1000", "offset": (memberOnline.length + offset)}).items; 	membersOnline = membersOnline + "," + arrMembers@.online; 	membersLastSeenTime = membersLastSeenTime + "," + arrMembers@.last_seen@.time; 	membersOnlineMobile = membersOnlineMobile + "," + arrMembers@.online_mobile; 	membersCountry = membersCountry + "," + arrMembers@.country@.id; 	membersDeactivated = membersDeactivated + "," + arrMembers@.deactivated; 	offset = offset + 1000; }; return [membersOnline, membersOnlineMobile, membersLastSeenTime, membersCountry, membersDeactivated]; 

На группах с небольшим количеством участников работает быстро, например на хабре медленно.

Демо: romkagolovadvayha.github.io/vk-analiz-group
Github: github.com/romkagolovadvayha/romkagolovadvayha.github.io/tree/master/vk-analiz-group

Использовал:
angular.js: github.com/angular/angular.js
angular-chart.js: github.com/jtblin/angular-chart.js
bootstrap: github.com/twbs/bootstrap
Алгоритм дорабатывал из своей предыдущей статьи: habrahabr.ru/post/248725

ссылка на оригинал статьи http://habrahabr.ru/post/262895/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *