Facebook API – Teil 4
In diesem Artikel stelle ich euch die FQL Abfragesprache von Facebook vor. Mit den Facebook SDKs der Programmierung für den Server (beispielsweise PHP) lassen sich die selben Daten abfragen wie schon im Teil 2 mit dem JavaScript SDK. Als Beispiel sei hier das User Objekt genannt.
FQL
FQL ist eine Abfragesprache für Facebook Daten. FQL ist nichts anderes als die SQL Syntax für Facebook. Damit kann man auf recht einfachen Weg komplexe Abfragen mit den Facebook Daten durchführen.
Initialisierung
Bevor man Daten Abfragen kann muss das Facebook SDK initialisiert werden. Dafür benötigt man die ID der App und deren Secret. Diese beiden Werte bekommt man bei der App Erstellung auf Facebook.
//get a Facebook object $facebook = new Facebook( array( 'appId' => $fb_appid, 'secret' => $fb_secret ) );
Daten abfragen
Mit dem initialisierten SDK kann man nun ganz einfach Daten abfragen. Folgendes Beispiel holt alle Daten über den eingeloggten Facebook Benutzer. Achtung: man muss angemeldet sein. Ohne Anmeldung bekommt man hier auch keine Daten.
$data = $facebook->api('/me');
Daten mit FQL abfragen
Mit FQL können jede Menge Daten abgefragt werden. Das oben genannte Beispiel für die Benutzerdaten schaut in FQL so aus:
$query = 'SELECT name, username FROM user WHERE uid = '.$user_id; $response = $facebook->api(array('method' => 'fql.query', 'query' => $query));
Hier holen wir uns zu einer Facebook ID den Namen und den Usernamen des Facebook Benutzers. Das geht bei Freunden recht einfach. Bei nicht befreundeten Personen kann man möglicherweise den Namen nicht abfragen, falls diese Benutzer diesen der Öffentlichkeit nicht anzeigen wollen.
Zum Abschluss noch ein komplexeres Beispiel. Hier hole ich mir die ID des Sender und die ID des Empfängers von einem AppRequest. Diese können von Facebook Apps an Benutzer verschickt werden um sie zur App einzuladen.
//get apprequest (sender_uid) $query = 'SELECT sender_uid, request_id FROM apprequest WHERE recipient_uid = '.$recipient_id.' AND app_id = '.$fb_appid; $result = $facebook->api(array('method' => 'fql.query','query' => $query));
Teil 1 | Teil 2 | Teil 3 | Teil 4