@Helen-Elena

Как вывести количество лайков топ пользователя группы вк?

Скрипт выводит пользователя, который, наибольшее количество лайков, поставил на стене группы (выводится имя, фамилия, аватар)
public function getLikerId()
    {
        global $config;

        $users = [];

        $time_to = time();
        if (!empty($config['like_interval']['to'])) {
            $time_to = strtotime($time_to);
        }

        $posts = $this->getPosts(-$config['group_id']);

        foreach ($posts as $post) {
            if ($post->date < strtotime($config['like_interval']['from']) || $post->date > $time_to) {
                continue;
            }

            $likes = $this->getLikes(-$config['group_id'], $post->id);

            foreach ($likes->users as $id) {
                if (isset($users[$id])) {
                    $users[$id]++;
                } else {
                    $users[$id] = 1;
                }
            }
        }

        arsort($users);
        $user_ids = array_keys($users);
        $user_id = array_shift($user_ids);
        return $user_id;
    }
 
    private function getLikes($owner_id = 1, $item_id = 1, $type = 'post')
    {
        return $this->api('likes.getList', [
            'owner_id' => $owner_id,
            'item_id'   => $item_id,
            'type'   => $type,
            ]);
    }

как получить число этих лайков, сколько он поставил?
  • Вопрос задан
  • 1630 просмотров
Пригласить эксперта
Ответы на вопрос 1
YardalGedal
@YardalGedal
yeah boy
1. Проходить по всем постам с помощью метода wall.get - Плохо.
2. С помощью CallBack API получать уведомления о лайках, поставленных пользователем и сохранять их у себя на сервере (желательно в базе данных) - Хорошо.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы