Donnerstag, 24. Mai 2012


Artikel

März 2011 | Artikel

Facebook-Applikationsentwicklung

(Link zum Artikel: http://www.entwickler.de/php//003664)

Inmitten der Schwierigkeiten liegt die Möglichkeit

Text: Peter Voringer
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Bei über 400 Millionen Usern, davon über 13,3 Millionen alleine in Deutschland, führt Facebook die Spitze der sozialen Netzwerke unangefochten an, und auch Microsoft sieht wohl noch weitaus größeres Potenzial in der Plattform, an der man sich mit 1,6 Prozent für stolze 240 Millionen Dollar beteiligt hat. Das Firmenerfolgsgeheimnis liegt nicht zuletzt auch in den eingebetteten und angeblich teilweise süchtig machenden Applikationen von Drittherstellern, die ihrerseits durch die Symbiose mit Facebook sehr einfach und kostengünstig ihre Reichweite vergrößern können. Firmen wie Zynga (heute schon Farmville gespielt?) haben es vorgemacht, wieso also nicht einfach auf den anfahrenden Zug aufspringen und selbst einmal eine Applikation schreiben?
Teil 1   Teil 2   Teil 3   Teil 4   

Wer häufig und regelmäßig auf Facebook unterwegs ist und einen breiten Freundeskreis besitzt, trifft sie des Öfteren: Einladungen und vollgepostete Walls von Spielen (oder Glückskeksen) – und genau diese sind auch in der Regel die initialen Einstiegspunkte für neue User, schließlich muss das, was mir jemand aus meinem Freundeskreis empfiehlt oder selbst nutzt, ja interessant sein, und man will ja auch mitreden können und ebenfalls sein Motto des Tages auf der eigenen Wall mitteilen. Nicht zuletzt fließt in so manche Applikation auch reales Geld, und wer zahlt, kommt wieder und macht auch in Zukunft weiter fleißig Werbung. Für Anwendungsentwickler ist es also ein attraktives Mittel, mit der eigenen Anwendung möglichst schnell einen soliden Kundenstamm zu generieren. Aber wie erstellt man Facebook-Anwendungen und wie findet man möglichst schnell den Einstieg, um die angebotenen Möglichkeiten auch ausnutzen zu können?

Genesis

Der Einstiegspunkt zum Verwalten Ihrer Anwendungen ist http://www.facebook.com/developers/. Zum Erstellen benötigen Sie lediglich einen Namen für Ihre neue Applikation und einen über Handy- oder Kreditkartennummer verifizierten Account. Facebook hostet selbst keine Drittanwendungen, was eine eigene Umgebung voraussetzt, auf der Ihre Applikation ausgeführt wird. In der weiteren Konfiguration (Abb. 1) werden sie daher dazu aufgefordert, einen URL unter [B] anzugeben, sodass ihre Anwendung auf Ihrem Server von Facebook per IFrame eingebunden werden kann. In [A] geben Sie einen weiteren Namen an, unter der Facebook Ihre Anwendung verlinken soll. Sofern Ihr Server standardmäßig eine Ausgabe liefert, sollte diese nach dem Speichern auf http://apps.facebook.com/ [A] bereits sichtbar sein.

Abb. 1: Konfiguration der Facebook-Applikation
Abb. 1: Konfiguration der Facebook-Applikation (Vergrößern)

Integration

Um von PHP aus auf Facebook zugreifen zu können, stellt Facebook ein PHP SDK zur Verfügung. Die Integration ist denkbar einfach (Listing 1) und erfordert nur ihre Anwendungs-ID und Ihren Anwendungsgeheimcode, den Sie in der Konfiguration (Abb. 1) finden.

  1. try{
  2. require './facebook.php';
  3. } catch(Exception $e){
  4. echo "<pre>" . print_r($e) . "</pre>";
  5. }
  6. $facebook = new Facebook(array(
  7. 'appId' => '[Anwendungs-ID]',
  8. 'secret' => '[Anwendungs-Geheimcode]',
  9. 'cookie' => true,
  10. ));

Listing 1

Über die so initialisierte Facebook-Klasse besteht damit die Möglichkeit, mit dem Facebook-Universum zu kommunizieren. Um jedoch auf Daten des Users zugreifen oder etwas an seine Wall posten zu dürfen, benötigen Sie zuvor die Autorisierung des Users (Listing 2), der dafür auf einen über das SDK generierten URL umgeleitet wird (Abb. 2). Nachdem Facebook sehr auf Datenschutz bedacht ist, müssen und können Sie hierbei feingranular benötigte Rechte anfordern. Eine vollständige und umfassende Liste finden Sie in der Dokumentation zu erweiterten Rechten. In unserem Beispiel beschränken wir uns darauf, auf eine E-Mail-Adresse zugreifen zu dürfen (email), sowie Schreibzugriff (Kommentieren, Posten, Gefällt mir etc.) auf die Wall des Users zu bekommen (publish_stream). Nach diesem Autorisierungsvorgang wird der User automatisch auf die Adresse der Anwendung zurückgeleitet. Zur weiteren Autorisierung (http ist zustandslos) benutzt man für API Calls den access_token, der neben der uid (ID des Users) im $session Array enthalten ist.

Abb. 2: Autorisierung durch den Benutzer
Abb. 2: Autorisierung durch den Benutzer (Vergrößern)

  1. $session = $facebook->getSession();
  2. $loginUrl = $facebook->getLoginUrl(
  3. array(
  4. 'canvas' => 1,
  5. 'fbconnect' => 0,
  6. 'req_perms' => 'publish_stream,email'
  7. )
  8. );
  9. if (!$session) {
  10. echo "<script type='text/javascript'>";
  11. echo "top.location.href = '$loginUrl';";
  12. echo "</script>";
  13. exit;
  14. }
  15. try {
  16. $uid = $facebook->getUser();
  17. } catch (FacebookApiException $e) {
  18. echo "<script type='text/javascript'>";
  19. echo "top.location.href = '$loginUrl';";
  20. echo "</script>";
  21. exit;
  22. }

Listing 2

Weiter geht es mit der Frage, wie man von seinem Server per PHP auf das API von Facebook zugreifen kann.

Teil 1   Teil 2   Teil 3   Teil 4   

Kommentare