Facebook API – Teil 1
Facebook ist heute DAS soziale Netzwerk überhaupt und mit der Facebook API bekommt man Zugang zu dessen Daten. Kaum jemand hat nicht davon gehört und so gut wie jeder hat damit Erfahrung. Ob er nun Facebook nutzt oder aber ein Facebook Verweigerer ist. Als Programmierer bekomme ich immer wieder Anfragen Facebook Apps zu entwickeln.
Facebook API
Facebook Apps erstellen ist nicht schwer, wenn man sich auskennt. Bis dahin ist es ein harter Weg. Prinzipiell muss man verstehen wie so eine Facebook App über Facebook arbeitet. Dazu muss man wissen was der Facebook Proxy ist und macht.
Der Facebook Proxy
Eine mit der Facebook API entwickelte Facebook App wird im Facebook Fenster angezeigt. Das heißt, sie wird in einem Frame im HTML Code von Facebook eingebunden. Das geschieht über den Facebook Proxy. Ein Request läuft also folgendermaßen ab:
- der Benutzer geht auf die App
- es wird ein Request an den Facebook Proxy geschickt
- der Proxy lädt die Seite von einem Server
- der HTML Code der geladenen Seite wird dem HTML Code von Facebook hinzugefügt
- der Benutzer bekommt das Ergebnis präsentiert
Wie man hier erkennen kann kommuniziert der Benutzer nie wirklich mit der Webseite der App, sondern immer über den Proxy. Dem Benutzer mag das egal sein, doch als Programmierer muss man hier bei der Implementierung viel nachdenken. Anders als bei der herkömmlichen Programmierung einer Web-Applikation muss man hier darauf achten, dass der Weg immer über den Proxy genommen wird. Das heißt es ist nicht gewährleistet, dass GET oder POST Parameter am Ziel ankommen. Auch bei der SESSION muss man acht geben, da es tatsächlich 2 SESSIONs gibt (eine vom Benutzer mit dem Proxy und eine vom Proxy mit der Web-Applikation). Dann gibt es auch noch die Tatsache, dass der Proxy seine eigenen Parameter an die Applikation schickt.
Ein Beispiel:
Anhand eines Beispiels möchte ich kurz erläutern, warum der Facebook Proxy ein Problem für einen Programmierer darstellt. Nehmen wir an ich habe eine Web-Applikation mit 2 Seiten. Seite 1 hat einen Link auf Seite 2. Klickt man diesen wird über den GET Parameter ein Wert geschickt der dem Programm mitteilt er soll Seite 2 anzeigen. Einfach oder?
Das Beispiel als Facebook App:
Der Benutzer kommt also auf die Seite und dort ist ein Link. Er klickt den Link, eine Request mit dem GET Parameter wird an den Server geschickt. Dieser zeigt die Seite 2. Und wo ist das Problem? Ganz einfach. Die Seite wird angezeigt, aber nicht im Frame von Facebook! Statt einen Request auf www.meineapp.com muss ich die URL meiner Facebook App eingeben zB facebook.com/meineapp/app_34793469734. Das Problem: über die URL der Facebook APP lassen sich keine GET Parameter schicken. Das spielt der Proxy nicht mit.
Die Dokumentation
Die Dokumentation der Facebook API ist ein Segen. Im Internet gibt es zahlreiche Codebeispiele und Meinungen und kaum etwas davon ist zu gebrauchen. Wenn man eine Funktionalität sucht, dann findet man nur hier wirklich brauchbare Hinweise. Alles andere kann man vergessen. Meistens erspart man sich dadurch, dass man gleich auf der offiziellen Dokumentation sucht sehr viel Zeit.
Die Basics
Das Wichtigste beim Erstellen einer Facebook App mit der Facebook API ist das SDK, dass von Facebook zur Verfügung gestellt wird. Man braucht es nicht, doch es erleichtert einem die Arbeit ungemein. Je nach dem mit welcher Programmiersprache man seine App schreiben will gibt es unterschiedliche SDKs. Folgende SDKs sind derzeit verfügbar:
- JavaScript SDK
- PHP SDK
- iOS SDK
- Android SDK
- Third Party SDKs
darunter zu finden sind z.B: .NET, Java, Python und Ruby SDKs
Die offiziellen SDKs bieten alle die selbe Funktionalität. Ich habe bereits mit dem PHP SDK und dem JavaScript SDK gearbeitet und das funktioniert einwandfrei.
Näheres zur Programmierung einer Facebook App gibt es im 2. Teil
Teil 1 | Teil 2 | Teil 3 | Teil 4