Получение списка пользователей, сделавших репост записи в VK.com на PHP

Для начала воспользуемся классом PHP для работы с API VK.com . Данный класс очень старый и работает с API v.3.0. Перейти на GitHub

И так, начнем с того, что в ВК для получения списка пользователей, которые сделали репост записи, существует метод wall.getReposts,  но с самого начала его существования он не мог достойно работать: при каждом запросе он возвращает разные данные.

Для решения данной проблемы я воспользовался методом likes.getList, который содержит нужный мне параметр filter = copies

  • copies — возвращать информацию только о пользователях, рассказавших об объекте друзьям.
require ('vkapi.class.php');
$api_id = '1111111'; //ID приложения | ID APP
$secret_key = 'secret_key'; // секретный ключ | Secret Key
$owner_id = '-11111111'; //идентификатор владельца Like-объекта: id пользователя, id сообщества (со знаком «минус») или id приложения.
$post_id = '11111';//идентификатор поста. в ссылке на пост крайние цифры после знака "_"

$VK = new vkapi($api_id, $secret_key);//создаем экземпляр класса vkapi | create an instance of the vkapi class
$resp = $VK->api('likes.getList',//используем метод likes.getList
        array(
            'type' => 'post',// тип объекта - запись
            'owner_id' => $owner_id,
            'item_id' => $post_id,
            'filter' => 'copies',//copies — возвращать информацию только о пользователях, рассказавших об объекте друзьям
            'extended' => '1',//1 — возвращать расширенную информацию о пользователях и сообществах
            'count' => '1000'//количество возвращаемых идентификаторов пользователей
            )
        );
print_r($resp);

Полученные данные содержат также информацию о группа и публичных страницах, которые сделали репост. Их легко отфильтровать от пользователей: пользователи имеют параметр uid (user ID), а группы параметр gid (group ID).

Скачать с GitHub

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