// you’re reading...

Internet

Facebook Anwendung erstellen

Facebook

Facebook

Facebook ist mit über 700 Millionen registrierten Benutzern eine der größten Communities im Internet. Wenn Sie Facebook schon mal verwendet haben, haben Sie sicher festgestellt, dass neben den Standardfunktionen wie Feeds, Bilder, Umfragen und Freundeslisten es viele weitere Anwendungen gibt. Die bekannteste Anwendung muss wohl die Glücksnuss sein, wenn ich die Feeds überfliege.
Im Folgenden möchte ich kurz elementare Funktionen der Facebook-API zeigen. Das ganze Anhand einer kleinen Anwendung mit welcher man Menschen fröhlich machen kann.

 

Warum eine Facebook Anwendung erstellen?

Ich habe eine einfache Idee meiner Ideenwand genommen und wollte diese mal eben umsetzen. Als neues Webprojekt hätte ich jedoch erst mal viel Werbung machen müssen. Ich habe mich für eine Facebook-Integration als Anwendung entschieden, da die Facebook Benutzer sich nicht mehr großartig registrieren müssen und die Werbung erspart bleibt, da Anwendungen über die Feeds viral verbreitet werden können.

Aufbau und Funktion meiner Wunschzettel-Anwendung

Ich habe mich für eine Wunschzettel-Anwendung entschieden.  Funktion dieser Anwendung ist recht einfach. Facebook-Benutzer können in der Anwendung Wünsche niederschreiben und deren Facebookfreunde können in der Anwendung die Wünsche sehen und diese erfüllen. Für das Erfüllen haben die Freunde eine Todo-Liste, auf welche die Wünsche kopiert werden können. Anschauen können Sie dies hier: http://apps.facebook.com/wunschzettelapp/

Der Aufbau ähnelt einer CRUD-Anwendung. Nur können Wünsche nicht mehr geändert oder gelöscht werden, wenn diese auf einer Todoliste von Facebookfreunden sind. Erst nach Erledigung des Todos auf der Todo-Liste ist ein Löschen wieder möglich. Weiterhin kann man nicht sehen, wer die eigenen Wünsche erfüllen wird. Aber als Freunde kann man zu mehreren Wünsche auf Todo-Listen kopieren und gemeinsam erfüllen.

Datenbankmodell

Die Datenbank besteht aus 2 Tabellen mit einer 1-n Relation. In Tabelle wunsch werden die Wünsche mit der Facebook-User-ID und Text gespeichert. In der Tabelle todo die Zuordnungen der Freunde, welche den Wunsch erfüllen werden. Die Verknüpfung erfolgt über das Feld ID.

Wie Sie sehen, werden extrem wenig Daten aus dem Facebook-Profil gelesen. Es wird tatsächlich nur die Facebook-User-ID gespeichert. Anhand dieser wird in der Anwendung später das Benutzerfoto sowie der volle Nachname über die Facebook-API nachgeladen.

Womit programmieren?

Die Facebook-Anwendung habe ich in der verbreiteten Skriptsprache PHP umgesetzt, da Entwicklungs- sowie laufende Kosten extrem niedrig im Vergleich zu anderen Programmiersprachen sind. Das Ganze habe ich anhand des Blog-Beitrag auf stevieswebsite.de erstellt. Als Nachschlagewerk gibt es das Buch Facebook-Anwendungen programmieren. Aber einige Details zur Kommunikation mit der Facebook-API möchte ich im folgenden auflisten.

 

Verbindung mittels API

Auf github können Sie die Facebook-PHP-API herunterladen. Folgender Code enthält eine App-ID und ein Secret-Code, welchen Sie in der Facebook-Anwendung “Developer” beim Anlegen einer neuen Anwendung erhalten. Einige Beispielcodes sind von dem o.g. Blog übernommen.

require '../d/facebook.php';

$facebook = new Facebook(array(
 'appId'  => '5426546245234565',
 'secret' => '8936789583578235674653784673657',
 'cookie' => true
 ));

$user = $facebook->getUser();

Nun haben Sie über $user auf die Facebook-User-Daten des eingeloggten Facebook-Benutzers.

Einloggen mit Berechtigungen

Die Webanwendung kann auch per Browser ohne Facebook-Login aufgerufen werden. Damit Facebook-Benutzer sich einloggen können bzw. der Facebook-Login über die Facebook-Seite automatisch in die Anwendung übernommen werden kann, ist folgender Code auf der Startseite der Anwendung notwendig:

$loginUrl = $facebook->getLoginUrl(
  array(
   'canvas' => 1,
   'fbconnect' => 0,
   'req_perms' => 'publish_stream',
   'scope' => 'publish_stream',
   'redirect_uri' => 'http://apps.facebook.com/wunschzettelapp/'
  )
  );
if ($user == "") {
  echo "<script type='text/javascript'>";
  echo "top.location.href = '$loginUrl';";
  echo "</script>";
  exit;
}

try {
  $uid = $facebook->getUser();
}
catch (FacebookApiException $e) {
  echo "<script type='text/javascript'>";
  echo "top.location.href = '$loginUrl';";
  echo "</script>";
  exit;
}

Dieser Code fragt beim ersten Aufruf der Anwendung ab, ob man das Recht zum Posten in den eigenen Feed vergeben möchte (scope=publish_stream). Wenn man noch keine Berechtigung zum Aufruf der Anwendung hat, wird mittels Javascript die Berechtigungsfreigabeseite von Facebook für diese Anwendung aufgerufen.

Der Login wird mittels folgenden Codes erstellt:

if ($user)
else
 <?
 <a href="<? echo $loginUrl; ?>">Login auf Facebook</a>

Mein Profil über API ermitteln

Das eigene Benutzerprofil kann wie folgt abgerufen werden:

$user_profile = $facebook->api('/me');
$name = $user_profile['name'];
$url_link = $user_profile['link'];

Freunde über API ermitteln

Da jede Anfrage an die Facebook-API Zeit braucht und auf Dauer die Anwendung inperfomant erscheinen lässt, habe ich die eigenen Freunde auf einmal ausgelesen und in einem Array den Namen und die Facebook-User-ID gespeichert:

$friendsLists = $facebook->api('/me/friends');
$friendnames[] = array();

foreach ($friendsLists as $friends)
{
  foreach ($friends as $friend)
  {
    $friendnames[$friend['id']] = $friend['name'];
  }
}

Berechtigungen

Die obigen Beispiele benötigen keine besonderen Rechte (Permissions), damit die Facebook-Anwendung arbeiten kann. Wenn ein Recht fehlen sollte, kommt aus der Facebook-API ein entsprechender Auth-Fehler zurück. Für welche Benutzerdaten weitere Berechtigungen benötigt werden können Sie der Developer-Dokumentation entnehmen.

Fazit

Eine Facebook-Anwendung kann sehr schnell entwickelt und benutzt werden. Meine Wunschzettel-Anwendung hat nicht mehr viele weitere Funktionen mit Zugriff auf die Facebook-API, die elementaren verwendeten Funktionen habe ich oben aufgelistet. Ein Blick auf meine Facebook-Anwendung können Sie hier werfen: http://apps.facebook.com/wunschzettelapp/. Viel mehr Details zur Programmierung mit der Facebook-API gibt es im Buch Facebook-Anwendungen programmieren.



Ähnliche Artikel

  1. Facebook Insights
  2. Maus emulieren für Facebook Klickspiel
  3. Java Socket Server
  4. Exceldatei mit Perl erstellen

Diskussion

Ein Kommentar für “Facebook Anwendung erstellen”

  1. Nett

    Posted by omar | Oktober 24, 2011, 21:17

Kommentar schreiben

*