Как получить число лайков и репостов страницы ВКонтакте?
PHP

Как получить число лайков и репостов страницы ВКонтакте

5 апреля 2015 982

Я совсем недавно рассказывал как получить и вывести цифрами количество лайков Фейсбук. Сегодня я расскажу как получить количество лайков и репостов ВКонтакте.

Kwork: Все онлайн-услуги по 500 руб.
Kwork: Все онлайн-услуги по 500 руб.

Действительно, часто возникает сильная необходимость сохранить единый стиль социальных счетчиков. Кроме этого, на основе полученных данных можно производить расчеты популярности тех или иных страниц. Помимо банальной аналитики, можно произвести сортировку страниц по социальной популярности, генерировать различные рейтинги. Вариантов использования этих данных более чем достаточно. А самое главное, у посетителя появляется более глубокая мотивация для осуществления лайка. Ну а, что такое лайк или репост с точки зрения SEO/SMO, я думаю, понятно без лишних слов.

Итак, начнем с простой функции vk_shares($url), которая получает количество репостов страницы ВКонтакте. Где $url — адрес нужной нам страницы.

 

function vk_shares($url) {
    $str = @file_get_contents("http://vk.com/share.php?act=count&index=1&url=".urlencode($url));
    preg_match('#VK.Share.count\(1, ([0-9]+)\);#', $str, $matches);
    return (count($matches) > 1) ? intval($matches[1]) : false;
}

 

Вторая функция vk_likes() получает количество лайков страницы. Она чуть сложнее, и кроме адреса страницы ей необходимо передать API ID вашего приложения (сайта) ВКонтакте. Он получается стандартным образом в соответствующем разделе ВКонтакте. Вдаваться в подробности не будем, это вполне тривиальная процедура.

Вызов функции осуществляется следующим образом: vk_likes($url, $api_id). Где $url — адрес запрашиваемой страницы, $api_id — ID приложения ВКонтакте.

 

function vk_likes($url, $api_id) {
    $html = @file_get_contents("http://vk.com/widget_like.php?app={$api_id}&url=".urlencode($url)."&type=button");
    preg_match('#<span id="stats_num">([0-9]+)</span>#', $html, $matches);
    return (count($matches) > 1) ? intval($matches[1]) : false;
}

 

Работа функций проверена 2 апреля 2015 года. С первой функцией вряд ли возникнут какие-то проблемы. А вот работоспособность второй гарантируется лишь до того момента, как ВКонтакте внесут изменения в код вывода счетчиков. При возникновении проблем, первым делом проверяйте #stats_num и регулярки, которые его обрабатывают.

Автор: Иван Данилин

Практикующий веб-разработчик, специализируюсь на платформе WordPress.

Комментарии

Разгоните свой WordPress

Хостинг-провайдер номер один в России — REG.RU

Подробнее