26
Nov
2010
admin

Facebook Query Language (FQL)

Die Facebook Query Language (FQL) ist eine SQL-ähnliche, Facebook eigene Datenbanksprache. Generell kann man sagen, dass sich mit der FQL grundsätzlich die gleichen Daten abrufen lassen, wie z.B. mit der Graph API. Allerdings bietet uns die FQL einige Vorzüge. Es ist z.B. möglich, mehrere Abfragen in nur einer API Abfrage zu bündeln. Das bedeutet, dass wir so die API Aufrufe minimieren können und so stark an der Performance Schraube drehen können.

Grundsätzlicher Aufbau eines API Aufrufs über die FQL

https://api.facebook.com/method/fql.query?query=QUERY

Zusätzlich kann über den Parameter format angegeben werden, ob die Antwort im JSON oder XML Format ankommen soll.

Aufbau eines Querys

SELECT [Felder] FROM [Tabelle] WHERE [Bedingungen]

Im Gegensatz zu SQL kann die FROM-Klausel nur eine einzige Tabelle enthalten. Das Schlüsselwort IN kann in SELECT- und WHERE-Klauseln benutzt werden, um Subqueries einzubinden. Enthält ein Query eine UID, kann me() benutzt werden, um die UID des aktuellen Benutzers zu erhalten:

SELECT name FROM user WHERE uid = me()

Weitere Funktionen, die innerhalb eines Querys benutzt werden können sind now(), strlen(), substr() und strpos().

FQL Aufruf mit PHP
Wie immer, greifen wir auch hier auf die Facebook SDK für PHP zurück:

$fql = $facebook->api(array(
                      'method'  => 'fql.query',
                      'query'   => "SELECT name FROM user WHERE uid = 'UID_DES_BENUTZERS'",
                      'access_token' => ACCESS_TOKEN_DES_BENUTZERS,
                      ));

Wir übergeben der Methode api() also ein Array, bestehend aus der Methode, die wir aufrufen wollen (bei FQL ist dies fql.query), der eigentlichen FQL Abfrage (query) und des Access Tokens des Benutzers, dessen Daten abgefragt werden sollen. Als Ergebnis erhalten wir ein Array, welches die abgefragten Daten enthält.

Eine vollständige Liste aller Datenbanktabellen, sowie Felder, findet sich in der offiziellen Facebook Dokumentation. Zu jeder Tabelle gibt es dort eine Liste der Felder, die abgefragt werden können, sowie oftmals auch eine Beispiel Abfrage. Alle FQL Abfragen folgen aber dem obigen Beispiel, so dass es kein großes Problem darstellen dürfte, das auf andere Tabellen und Felder zu übertragen.

Hinweis
Du kannst alle Codebeispiele von AboutTheWeb über ein SVN Repository auschecken. Dieses Beispiel findest du unter folgender Adresse:
http://svn.abouttheweb.de/atwtutorials/trunk/fql/

Alternativ kannst Du alle Codebeispiele über das AboutTheWeb github Repository auschecken.

Trackback-URL für diesen Beitrag

http://www.abouttheweb.de/trackback/608

Ähnliche Artikel

X
Laden