В прошлой статье о том как узнать количество твитов в Twitter, лайков и share в facebook, ВКонтакте, Одноклассниках, Google+ на PHP я сказал, что была необходимость выводить суммарное число лайков трёх соц. сетей. Помимо этого необходимо было, чтобы в случае, если человек лайкнет/дизлайкнет страницу, число изменилось. То есть, нобходимо отслеживать кнопки Like, Tweet, Мне нравится в социальных сетях.
Если покопаться в документации соответствующей соц. сети, то можно найти информацию о том, как подписаться на события кнопок. Решил выложить тут рабочий вариант, если кому-то лень копаться, да и себе на будущее.
Естественно, сначала надо инициализировать сие дело.
//для VK <script type="text/javascript" src="http://userapi.com/js/api/openapi.js?49"></script> <script type="text/javascript"> VK.init({ apiId: идентификатор_приложения, onlyWidgets: true }); </script> //для FB <script src="//connect.facebook.net/en_US/all.js"></script> //Twitter <script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>Ну и потом, собственно, подписаться на сами события.
//для VK VK.Observer.subscribe('widgets.like.unliked', function(likeCount) { // если убрали нажатие с кнопки "мне нравится" }); VK.Observer.subscribe('widgets.like.liked', function(likeCount) { // если нажали на кнопку "мне нравится" }); //можно отписаться VK.Observer.unsubscribe('widgets.like.unliked'); VK.Observer.unsubscribe('widgets.like.liked'); //для FB //opt_pagePath адрес страницы FB.Event.subscribe('edge.create', function(opt_target) { //если нажали на кнопку "рекомендовать" }); FB.Event.subscribe('edge.remove', function(opt_target) { // если убрали нажатие с кнопки "рекомендовать" }); //можно отписаться FB.Event.unsubscribe('edge.create'); FB.Event.unsubscribe('edge.remove'); //для Twitter trackTwitterHandler_ = function(intent_event) { var opt_target; if (intent_event && intent_event.type == 'tweet' || intent_event.type == 'click') { var socialAction = intent_event.type + ((intent_event.type == 'click') ? '-' + intent_event.region : ''); //тип нажатия //ну, как пример, проверка на то, твиттнули ли if(socialAction =='tweet') { //если в модальном окне нажали "твиттнуть", то можно тут обработать } //аналогично можно обрабатывать нажатие по числу твиттов и т.д. } }; intent_handler = function(intent_event) { trackTwitterHandler_(intent_event); }; twttr.events.bind('click', intent_handler); twttr.events.bind('tweet', intent_handler); //можно отписаться twttr.events.unbind('click'); twttr.events.unbind('tweet');Можно и для других соц. сетей такое сделать, я думаю. Для mail.ru, чтобы отследить событие mailru.app.events.like используется, вроде как, mailru.events.listen.