Определяем, сколько человек онлайн в вашей группе

Для работы скрипта будем использовать библиотеку, созданную ранее в посте Автоматический постинг в ВКонтакте на стену группы или пользователя. Оттуда нам понадобиться только один файл с библиотекой vk.php.

По задаче, нам требуется определить сколько человек находится в онлайн в текущий момент. Как такогого функционала у самой соц. сети ВКонтакте нет, зато есть общедоступное Api. Сам по себе алгоритм достаточно прост, для его реализации мы будем использовать только две функции из api: groups.getMembers и users.search.

Перед тем, как приступить, необходимо получить access_token для работы с api ВКонтакте, для этого вобъём ссылку в адресную строку браузера:

http://oauth.vk.com/authorize?client_id=YOUR_CLIENT_ID&scope=wall,offline&redirect_uri=http://oauth.vk.com/blank.html&response_type=token

Соответственно YOUR_CLIENT_ID вы должны заменить на ID своего приложения. В итоге мы получаем некую ссылку с нашим токеном. Теперь создадим файлик vk_group_online.php с таким содержимым:

<?
include "vk.php";
$access_token = "ACCESS_TOKEN";
$group_id = "GROUP_ID";

//Инициализируем класс
$vk = new Model_Vk($access_token);

//Получаем список пользователей
$page = 0;
$limit = 1000;
$online = 0;
do {

    //Получаем список пользователей
    $members = $vk->method("groups.getMembers", array(
        "group_id" => $group_id,
        "offset" => $page * $limit,
        "count" => $limit
    ));

    //Спим
    sleep(1);

    //Получаем данные пользователей
    $users = $vk->method("users.get", array(
        "user_ids" => implode(",", $members->response->users),
        "fields" => "online"
    ), true);

    //Проходим по списку, считаем онлайн
    foreach( $users->response as $user ) {
        if( $user->online ) {
            $online++;
        }
    }
    sleep(1);

    //Увеличиваем страницу
    $page++;
} while( $members->response->count > $page * $limit );

echo "Online: " . $online . PHP_EOL;

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

$ php vk_group_online.php
Теги:
vkontakte, ВКонтакте, вк, vk.com
Добавлено: 08 Апреля 2021 09:03:44 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...