Die Möglichkeit, Facebook Apps mittels FBML zu programmieren, wurde bereits im Mai 2011 abgeschafft. Zwar konnte man bestehende Apps behalten, kürzlich wurden aber auch diese dicht gemacht. Facebook hat in diesem Jahr auch bei den Gruppen gezeigt, dass man im Falle eines Falles schlicht und ergreifend kurzen Prozess macht. Die Zukunft gehört also den iFrame Apps.

Das hat viele Vorteile. Der größte Vorteil ist wohl die Tatsache, dass man fortan alles als Facebook App in seine Fanpage integrieren kann, was auch auf dem eigenen Server läuft. Will man zum Beispiel eine App zum Generieren von Fans nutzen oder seinen Fans einfach nur exklusive Inhalte bieten (auf die Nicht-Fans keinen Zugriff haben sollen), dann muss man sich um eine sogenannte „Fan Gate“ Lösung bemühen.

Auch das ist wie das Programmieren von Apps seit Mai 2011 relativ unkompliziert. Nachfolgend will ich erläutern, wie man Inhalte einer Facebook iFrame App exklusiv nur für seine Fans darstellen kann (und im Gegenzug angepasste Inhalte für diejenigen, die keine Fans sind).

Voraussetzung für die Erstellung einer Facebook App mit Fan Gate ist die Verifizierung des Entwickler Accounts bei Facebook. Das geht via SMS oder Kreditkarte. Ebenfalls notwendig ist ein Webspace, auf dem man PHP ausführen kann.

1. Erstellung einer Facebook App

Ohne eine App, in der man entsprechende Inhalte hat, geht natürlich nichts. Der erste Schritt ist also die Programmierung der App und die anschließende Anmeldung der App bei Facebook selbst.

2. App für Fan Gate vorbereiten

Im nächsten Schritt ruft man die Entwickler Sektion von Facebook auf. Unter „Meine Anwendungen“ findet sich die eigene App. Hier wählt man „Einstellungen bearbeiten“ und entscheidet sich für die Option „Fortgeschritten“. Dort muss „OAuth 2.0 für Canvasseiten“ aktiviert sein.

3. PHP API besorgen

Nun folgt der Download der PHP API, die zwingend notwendig ist, um das Feature „Fan Gate“ innerhalb einer Facebook iFrame App zu nutzen. Der Download bringt diverse Dateien, wichtig für die App ist aber nur die „facebook.php“, welche nach dem Download in dem Verzeichnis auf dem eigenen Server abgelegt werden muss, in dem sich auch die App befindet.

4. Quellcode der App ergänzen

Der folgende PHP Code muss zum Quellcode der App hinzugefügt werden. Die Parameter „Anwendungsnummer“ und „Anwendungs-Geheimcode“ müssen durch die jeweiligen Daten ergänzt werden, die die Übersicht der eigenen App bei den Facebook Developers anzeigt.

<? require(‘facebook.php’);
$app_id = “Anwendungsnummer”;
$app_secret = “Anwendungs-Geheimcode”;
$facebook = new Facebook(array(
‘appId’ => $app_id,
‘secret’ => $app_secret,
‘cookie’ => true
));
$signed_request = $facebook->getSignedRequest();
function parsePageSignedRequest() {
if (isset($_REQUEST[’signed_request‘])) {
$encoded_sig = null;
$payload = null;
list($encoded_sig, $payload) = explode(‘.’, $_REQUEST[’signed_request‘], 2);
$sig = base64_decode(strtr($encoded_sig, ‘-_’, ‘+/’));
$data = json_decode(base64_decode(strtr($payload, ‘-_’, ‘+/’), true));
return $data;
}
return false;
}
if($signed_request = parsePageSignedRequest()) {
if($signed_request->page->liked) { ?>
Diesen Inhalt sehen alle Fans
<?php  } else { ?>
Diesen Inhalt sehen alle Nicht-Fans
<?php
}
}
?>

5. iFrame App testen

Hat man nun die Daten für Anwendungsnummer und Anwendungs-Geheimcode eingesetzt, dann müssen natürlich auch die einzelnen Inhalte für Fans und solche, die es noch nicht sind (aber werden sollen) angepasst werden.

Praktisch an der Lösung, Facebook Apps via iFrame zu implementieren ist vor allem, dass man nach dem hier gezeigten Setup praktisch nicht mehr in der App bei Facebook direkt herumbasteln muss. Man kann alle Inhalte bequem und komfortabel auf dem eigenen Server editieren und hier auch aktuelle Anpassungen vornehmen, weil Facebook sich alle Daten direkt von der URL auf dem eigenen Server zieht.