私自身の関心のために、コミュニティメンバーに関する情報を取得できる小さなスクリプトを作成しました。
彼の開発では、 executeとVKScriptを使用しました。 実行からテキストフィールドのみを受け入れることができ、文字列から翻訳する必要があったことは非常に悪いことです。 すべてのユーザーが持っているわけではないフィールドについては、「,,,,, 1,4 ,,,,,,,, 5.54 ,,,,, 5.4 ,,,,, 3 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 、、」。 「.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];
少数の参加者がいるグループ、たとえばHabréではゆっくりと動作します。
デモ: romkagolovadvayha.github.io/vk-analiz-group
Github: github.com/romkagolovadvayha/romkagolovadvayha.github.io/tree/master/vk-analiz-group
使用済み:
angular.js( CRMシステムに 最適 ): github.com/angular/angular.js
angular-chart.js: github.com/jtblin/angular-chart.js
ブートストラップ: github.com/twbs/bootstrap
アルゴリズムは、前の記事から完成しました: habrahabr.ru/post/248725