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; }
{/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.
Podobné články
Volná místa v IT
- .NET developer / CRM specialista (CLEVERLANCE s.r.o.)
- Vývojář (COPY GENERAL, s.r.o.)
- Senior Technical Support Rep (Expedia Services CZ, s.r.o.)
- Robotik – zahraniční projekty (plat od 30.000,--) (Advantage Consulting, s.r.o.)
- Systémový administrátor (IBM Domino) (Ref. č.: 5214) (PERSPEKTIVA CZ, s.r.o.)




















Poslední komentáře