Menu      

Egyedi Facebook megosztás számláló

Egy egyszerű, de nagyszerű scriptet mutatunk most be, amivel kikérdezhetjük, hogy az oldalunkon egy adott cikket vagy bejegyzést hányan Like-oltak a Facebookon. Mindezt úgy, hogy a végeredmény - vagyis a szám - teljes mértékben személyre szabható, így nem kell a Facebook nem minden esetben használható Like gombját kihelyezni, azért hogy lássunk egy like számot.
Számos esetben előfordul, hogy nem szeretnénk megjeleníteni a Facebook-tól kapott Like gombot és a kis számlálót, mert egyszerűen mondjuk nem illik az oldal külalakjába, vagy éppen egy cikk listára szeretnénk rakni, ahol meg még inkább eltorzítaná az összképet a rengeteg Facebook Liket button. A most bemutatásra kerülő script alapvetően a Facebook Graph API-t használja, egy kis jQuery script segítségével így a végeredményként, egyetlen számot kapunk vissza, amit olyan környezetbe helyezünk el, amilyenbe csak szeretnénk, ezzel is megtartva oldalunk eredeti szépségét.
Megjegyzés: leszögeznénk, hogy a Like és a Megosztás egy ideje már egy és ugyanazon metódust használja a Facebookon, viszont semmiképp nem keverendő össze azzal, hogy például egy Facebook oldal hányan kedvelik, azzal hogy egy URL-t hányan like-oltak.
A Facebook Graph API viszonylag könnyen használható a mindenféle kikérdezések szempontjából, ahhoz hogy a script működését megértsük, előbb lássuk hogyan is működik ez. Egy egyszerű példaként először lássuk, hogy hányan osztották meg magát a http://www.totalstudio.hu oldalt
http://graph.facebook.com/?ids=http://www.totalstudio.hu
Majd pedig lássuk, hogy a Facebookon hányan Like-oltak minket.
http://graph.facebook.com/?ids=168017006562036
Mindkettő eljárás egy object-el tér vissza, amiből kinyerhetjük a számunkra megfelelő adatokat. A különbség a kettő között, hogy a Facebook oldal lekérdezésekor jóval több adatot kapunk meg és ott a shares helyett likes van. Mi most az első URL elemzésével fogunk foglalkozni, mert a honlapba való integrációnál ez az érdekesebb. Jelen esetben a visszatérő objektumunk a következő:
{
 "http://www.totalstudio.hu": 
  {
   "id": "http://www.totalstudio.hu",
   "shares": 9
  }
}

Ezt az objektumot bárki feldolgozhatja, azonban mi most egy jQuery scriptes feldolgozást mutatunk be, ami igazán megkönnyítheti bárkinek a dolgát. A Script lényegében nem csinál mást, mint kikeresi a shares elemet és a hozzá tartozó értéket beleírja egy általunk megadott html elembe az oldalon. Jelen esetben mi egy span-t használunk, aminek a stílus készlete likebox lesz. A jQuery függvény ezt a stílus készletet fogja keresni elemzésre. Title-nek azt az URL-t adjuk meg, amit szeretnénk leellenőrizni. Végeredményben így néz ki a kérés:

< span class="likebox" title="http://www.totalstudio.hu">< /span>

A jQuery Plugint pedig az alábbiak alapján hívjuk meg, lehetőleg ott ahol az összes scriptet behívjuk. Értelemszerűen, hogy az oldalban nincs másik script behívás, akkor jelenjen meg a kódban elhelyezéskor az alábbi körül:
$(document).ready(function()
  {
    $('span.likebox').fblikecount();
  }
});
A végeredmény egy szám, ami megjelenik a „likebox" class-al rendelkező elemünkben, mi adtunk, egy kis designt ennek az elemnek, kapott egy háttérképet, és ennek megfelelően egy padding-ot balról és a végeredmény a következő lett:



A jquery.fblikecount.js letölthető a cikk végén, de ide is bemásoljuk, hogy mindenki lássa mi is található ebben a szerintünk végtelenül egyszerű scriptben. Megjegyzés: amennyiben a likes- számot szeretnénk kikérdezni egyértelműen a json[objLink].shares -t kell json[objLink].likes -ra átírni.
(function($){
	$.fn.fblikecount = function(options){
		var defaults = {
			baseUrl: 'http://graph.facebook.com/?ids='
		};
		var options = $.extend(defaults, options);
		var count = 0;
		return this.each(function(){
			var $this = $(this);
			$this.hide();
			var objLink = $(this).attr('title');
			if(objLink.indexOf('http') === 0){
				$.getJSON(defaults.baseUrl + objLink + '&callback=?', function(json){
					if(json[objLink] && json[objLink].shares){
						$this.html(json[objLink].shares);
						$this.show();
					}
				});				
			}
		});
	}
})(jQuery);
Egyedi Facebook megosztás számláló

#totalstudio