Социальные сети — прекрасный инструмент маркетинга, но иногда они не хотят дать своими функциями возможность сэкономить пользователю. Передо мной стоит задача: есть онлайн-магазин, там есть кнопки «нравится» (вполне стандартные, т.е. не в виде собственного велосипеда, который по щелчку запрашивает разрешение на добавление лайка, а обычные такие кнопки). Необходимо перехватить событие лайканья и отлайканья, а именно на нажатие «нравится» через ajax подгружать разовый код купона на скидку и показывать пользователю.
Если бы магазин был приложением, то все было бы просто — есть событие mailru.app.events.like, однако для сайтов этого события нет. Лайк/дизлайк создают куки, но они для домена *.mail.ru. Сами кнопки находятся в iframe, содержимое которого также получить нельзя.
Возможно кто-нибудь сталкивался с подобной задачей — подскажите как это можно и можно ли реализовать.
Моральная сторона вопроса: социальные сети НЕ против стимулирования нажатий на «нравится», в случае если всё честно для пользователя.
Отловил что виджет вставляет ифрейм с кнопками перед .
Так же есть у них отлавливатели эвентов клика:
http://api.mail.ru/2012/01/share_and_event/
они отдают result.id так вот ифрейм на странице генерируется именно с этим id. Итого я отловил нужное мне значение так:
mailru.loader.require('api', function(){
mailru.events.listen(mailru.plugin.events.liked, function(result, params, elsevar){
good_id = $("#"+result.id).parent().next().attr("data-good-id");
});
mailru.events.listen(mailru.plugin.events.unliked, function(result){
// console.log(result.type);
// Анлайки всё равно не пашут :)
});
});
Спасибо, попробую, но я надеялся, что есть какой-то метод, предусмотренный самими майлрушниками. Для своей задачи (стимулирование социальной активности пользователей в обмен на скидку) я нашел другой метод — использование api.mail.ru/docs/reference/rest/stream.share/ — люди будут щелкать по кнопке «Получить скидку», открываться окно с запросом прав на добавление ссылок в ленту, если пользователь разрешает мне приходит history_id, а в ответ я генерирую купон на скидку.