FQL: dotazujte se Facebooku podobně jako databáze

Chcete z Facebooku získat různé informace k nějaké webové adrese, třeba aktuální stránce? Použijte dotazovací jazyk FQL. Snadno se jej naučíte, podobá se totiž dotazům do databáze psaným v SQL. V článku si ukážeme několik jednoduchých příkladů, jak zaslat dotaz a zpracovat data vrácená Facebookem.

Reklama

Facebook není z pohledu vývojáře webu jen o tom, že si na něj třemi způsoby (iframe, HTML5, XFBML) umístíte lajkovací tlačítko a box. Existuje celá řada dalších způsobů, jak webovou stránku s Facebookem propojit.

Jedním z takových propojení na Facebook je speciální dotazovací jazyk FQL - Facebook Query Language. Můžete jej používat k získávání informací o počtu kliknutí na Líbí se Ti, počtu sdílení, celkovém součtu těchto čísel a o mnoha dalších věcech.

Když se podíváte na domovskou stránku FQL, uvidíte tam přehled jednotlivých tabulek. Každou z nich si můžete rozkliknout a uvidíte seznam jejích sloupečků, spolu s vysvětlením, jaké informace se v nich nacházejí.

Podívejte se například na tabulku link_stat. Obsahuje informace o tom, jak je nějaká URL na Facebooku oblíbená. Získáte z ní všechny informace, které jsem uvedl výše.

Prakticky v PHP: jak získat data o oblibě stránky z Facebooku pomocí FQL

Podívejme se tedy, jak použití FQL funguje v praxi. Pomocí FQL si sestavíte příslušný dotaz. Následně jej Facebooku odešlete metodou HTTP GET, tedy jednoduše zavoláním URL se zakomponovaným dotazem. Facebook vám pak vrátí XML s informacemi, které požadujete.

<?php
 $url =  'http://www.maxiorel.cz/';
 $fql = 'SELECT  like_count, share_count, click_count, comment_count, total_count from link_stat  where  url="'.$url.'"';
 $query_url = 'https://api.facebook.com/method/fql.query?query='.urlencode($fql);
 $result = simplexml_load_file($query_url);
 print 'Počet lajků: '.$result->link_stat->like_count.'<br/>';
 print 'Počet sdílení: '.$result->link_stat->share_count.'<br/>';
 print 'Počet komentářů: '.$result->link_stat->comment_count.'<br/>';
 print 'Celková obliba: '.$result->link_stat->total_count.'<br/>';
 print 'Počet kliknutí z Facebooku: '.$result->link_stat->click_count.'<br/>';
?>

Krátké vysvětlení k výše uvedenému kódu pro méně znalé PHP. Nejprve přiřadíme požadovanou URL do proměnné $url. Do proměnné $fql spojíme dotaz a připravenou URL, aby Facebook věděl, na jakou adresu se jej ptáme.

Připravený dotaz v proměnné $fql zakódujeme funkcí urlencode() tak, aby šel zadat coby URL adresa (tj. uvozovky a další znaky se převedou na HTML entity) a finálně připravenou adresu pro volání vložíme do proměnné $query_url.

S využitím simplexml_load_file() kde předáme adresu vracející XML s požadovanými informacemi, získáme objekt s XML výstupem z Facebooku. Poté už jen stačí získaná data vypsat v nějaké formě do prohlížeče.

Uvedený kus PHP kódu můžete vložit do těla nějaké webové stránky, proměnnou $url naplnit její adresou a při načtení tak hned sledovat získaná data. Upozorňuji ale, že nevím, kolik volání za den vám Facebook dovolí.

Dotazování na Facebook pomocí FQL v JavaScriptu

Nyní se podívejme na jednoduchý příklad volání FQL v JavaScriptu. Ne vždy budete chtít, aby se data zobrazila hned po načtení stránky. S pomocí JavaScriptu můžete nechat tyto informace zobrazit třeba po stisku nějakého tlačítka na stránce.

Připravte si tedy jednoduchou strukturu HTML, do které vložíte jedno tlačítko s id=tlacitko. Dále do dokumentu napojte jQuery. Pomocí $(document).ready() zpracujete přiřazení události kliknutí na tlačítko a vytvoříte obsluhu této události.

Podobně jako v ukázce s PHP si nyní připravte proměnné s URL, dotazem FQL a finálně sestrojenou adresou, která vrátí XML data z Facebooku. Připravte konstrukci $.ajax(), ve které připravenou adresu s výsledky v XML zavoláte a v případě úspěšného volání projdete získaná data. V příkladu získané informace prostě po stisku tlačítka zapíšu do těla stránky.

Celá ukázka kódu HTML stránky s voláním FQL pomocí JavaScriptu je zde:

{syntaxhighlighter brush: xml;fontsize: 100; first-line: 1; }



Ukázka použití FQL






{/syntaxhighlighter}

Pomocí FQL se Facebooku samozřejmě můžete dotazovat na celou řadu jiných věcí, nejenom statistik pro danou URL. Doporučuji prostudovat seznam všech tabulek a příkladů na domovské stránce FQL.

Volná místa v IT

Další pracovní místa najdete na stránce Volná pracovní místa v IT.

Reklama