Мониторинг Активности Групп Вк. Обрабатываем Данные С Помощью Vkscript

Передо мной стояла задача следить за активностью пользователей известной социальной сети.

Моей задачей было собрать данные о количестве пользователей онлайн в определенной группе или сообществе.



Инструменты
Поскольку я сам занимаюсь веб-разработкой, я использовал следующие инструменты:
  • PHP 5 (Zend Framework)
  • Вк API
  • Крон
Объясню свой выбор - Vk API - дело в том, что получить количество онлайн-пользователей можно и без API, но парсив страницу поиска пользователей с фильтром сообщества и онлайн-тегами, однако я предпочел не заморачиваться с этим авторизация и парсинг тегов, а использовать программный интерфейс.



Архитектура
Реализация условно может быть разделена на 2 части.

Первый — это скрипт, который находит количество онлайн-пользователей на основе идентификатора группы и записывает его в базу данных.

Второе — админ-панель, которая позволяет добавлять новые группы для мониторинга и просматривать статистику по уже добавленным группам.

Чтобы статистика была актуальной, необходимо как можно чаще отслеживать состояние группы в текущий момент времени.

Скрипт должен быть помещен в Cron, пусть вызывается каждые 5 минут.

Обзор API Вк
Если с админкой все более-менее понятно, то со скриптом сбора статистики не совсем понятно.

Ознакомившись с методами, предоставляемыми API, я прихожу к первому решению.

Первое решение (неверное) Использование методов groups.getMembers , пользователи.

get Получаем список участников группы и их статус – онлайн или офлайн.

Далее мы подсчитываем, сколько пользователей онлайн.

Это просто.

Однако эта кажущаяся простота приводит к ряду проблем.

Все было бы хорошо, если бы у вас были небольшие группы (до 1000 человек).

В противном случае мы упираемся в ограничения API — одновременно можно получить информацию только о 1000 пользователях.

Зачем нам это ограничение? Вы можете вызвать метод в цикле, но нет. Вызовы API разрешены не более 3 запросов в секунду.

Давайте посчитаем примерное количество запросов, которое понадобится.

Возьмем сообщество хабрахабра Вк.

У него более 40 000 пользователей, поэтому нам понадобится около 40 запросов, чтобы получить участников сообщества, и 40 запросов, чтобы узнать их статус.

Пойдем искать новое решение.

Второе решение (правильное) Находим метод в документации выполнять

Универсальный метод, позволяющий запускать последовательность других методов, сохраняя и фильтруя промежуточные результаты.

На вход он принимает строку с кодом, написанным на так называемом VKScript (аналог javascript).

Проблема только в том, что нет вменяемой документации по этому методу и самому языку.

Вероятно решение найдено, поэтому можно углубиться в изучение API Вк и VKScript в частности.



Работа с API
Скачайте класс для работы с API, предложенный разработчиками.

Я просто привел его в более приемлемую форму, чтобы он соответствовал стилю кодирования, используемому в Zend Framework. Класс API

   

<Эphp class Vkapi_Model_Api {

Теги: #vk.com api #php5 #php #php #API ВКонтакте
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.