Wie erstelle ich einen Facebook RSS Feed Reader für meinen Blog - Seite 2

3 Die PHP5 Client Library aufsetzen

Nun laden wir die PHP Client Library in das Verzeichnis unserer Website, in dem sich unsere Feed Reader App befinden wird (z.B. http://fb.howtoforge.com/fb/htf_feed_reader/). In diesem Beispiel gehe ich davon aus, dass der Dokumenten-Root von  fb.howtoforge.com  /var/www  ist (passe folgende Befehle an, wenn Du einen anderen hast). Also erstellen wir zuerst das Verzeichnis /var/www/fb/htf_feed_reader:

mkdir -p /var/www/fb/htf_feed_reader

Dann laden wir die PHP Client Library in das Verzeichnis und entpacken sie:

cd /var/www/fb/htf_feed_reader
wget http://developers.facebook.com/clientlibs/facebook-platform.tar.gz
tar zxvf facebook-platform.tar.gz

Damit wird das Verzeichnis Facebook-platform/ mit dem Unterverzeichnis  client/ erstellt, das die Client Libraries für PHP 5 (facebook.php und facebookapi_php5_restlib.php) enthält. Wir kopieren diese beiden Dateien nach /var/www/fb/htf_feed_reader und löschen facebook-platform.tar.gz sowie facebook-platform:

cp facebook-platform/client/facebook.php .
cp facebook-platform/client/facebookapi_php5_restlib.php .
rm -rf facebook-platform.tar.gz facebook-platform

4 Unsere erste einfache Anwendung

Nun können wir unsere erste, sehr einfache App schreiben. Zunächst erstellen wir die Datei appinclude.php, die einige Grundeinstellungen wie den API Key, das Passwort und die Callback URL beinhaltet und die wir in jede Datei unserer App einschließen:

vi /var/www/fb/htf_feed_reader/appinclude.php


<?php
require_once 'facebook.php'; $appapikey = 'YOUR_API_KEY'; $appsecret = 'YOUR_SECRET'; $facebook = new Facebook($appapikey, $appsecret); $user = $facebook->require_login(); //[todo: change the following url to your callback url] $appcallbackurl = 'http://fb.howtoforge.com/fb/htf_feed_reader/'; //catch the exception that gets thrown if the cookie has an invalid session_key in it try { if (!$facebook->api_client->users_isAppAdded()) { $facebook->redirect($facebook->get_add_url()); } } catch (Exception $ex) { //this will clear cookies for your application and redirect them to a login prompt $facebook->set_user(null, null); $facebook->redirect($appcallbackurl); } ?>
Dann erstellen wir index.php, die Datei, die ausgeführt wird, wenn die callback URL (http://apps.facebook.com/htf_feed_reader) aufgerufen wird. In diesem einfachen Beispiel zeigt sie nur etwas wie "hello" an, plus die Facebook Benutzer ID:

vi /var/www/fb/htf_feed_reader/index.php


<?php
require_once 'appinclude.php'; echo "<p>hello $user</p>"; ?>
Öffne jetzt einen Browser und gib entweder die callback URL (http://fb.howtoforge.com/fb/htf_feed_reader) oder die canvas URL (http://apps.facebook.com/htf_feed_reader) Deiner Anwendung ein. Unabhängig von dem, was Du eingibst, solltest Du wie folgt zu einer Seite weitergeleitet werden:


Klicke auf das "Log in to HowtoForge RSS Feed Reader" Feld. Ändere auf der nächsten Seite nichts an den Markierungen und klicke auf das "Add HowtoForge RSS Feed Reader" Feld um diese Anwendung in Deinem Konto zu installieren:


Wenn eine App installiert wird, wird zuerst die callback URL (http://fb.howtoforge.com/fb/htf_feed_reader) aufgerufen. Also solltest Du etwas wie "hello <userid>" sehen können, was tatsächlich der Fall ist und bedeutet, dass unser Setup funktioniert:


Auf Deiner Profil-Seite solltest Du nun das "HowtoForge RSS Feed Reader" Feld in der breiten Spalte sehen (das die Standard-FBML anzeigt, die wir festgelegt haben, als wir die Anwendung auf Facebook eingerichtet haben - unsere einfache App erzeugt noch keine eigene FBML) sowie einen Menüeintrag in der linken Navigation:


Lass uns nun index.php ein bisschen modifizieren und ein Eingabe-Feld hinzufügen, in das Du einen Text eingeben kannst, der dann auf der Profil-Seite anstelle der Standard-FBML auftaucht:

vi /var/www/fb/htf_feed_reader/index.php


<?php
require_once 'appinclude.php'; echo "<p>hello $user</p>"; if (isset($_REQUEST['profiletext'])) { $facebook->api_client->profile_setFBML($_REQUEST['profiletext'], $user); $facebook->redirect($facebook->get_facebook_url() . '/profile.php'); } echo '<form action="" method="get">'; echo '<input name="profiletext" type="text" size="30" value=""><br>'; echo '<input name="submit" type="submit" value="Display text on profile">'; echo '</form>'; ?>
Wie Du siehst kann die FBML auf der Profil-Seite mit der Funktion $facebook->api_client->profile_setFBML() geändert werden.
Gehe nun wieder zur Canvas Seite Deiner Anwendung (http://apps.facebook.com/htf_feed_reader in meinem Fall). Unter der "hello" Zeile solltest Du nun eine Text-Box sehen:


Gib einen Text ein und klicke auf das "Display text on profile" Feld:


Gehe dann wieder zu Deiner Profilseite. Nun solltest Du den Text, den Du in die Text-Box eingetragen hast, dort finden:


Im nächsten Beispiel verwenden wir mock-AJAX um die Inhalte der Canvas Seite und das Profil zu aktualisieren:

vi /var/www/fb/htf_feed_reader/index.php


<?php
if (isset($_REQUEST['mockfbmltext'])) { echo $_REQUEST['mockfbmltext']; exit; } require_once 'appinclude.php'; echo "<p>hello $user</p>"; $fbml = <<<EndHereDoc <fb:subtitle>This is the subtitle</fb:subtitle> <form> <input name="mockfbmltext" type="text" size="30"> <br /> <input type="submit" clickrewriteurl="$appcallbackurl" clickrewriteid="preview" value="Draw text below" /> <br /> <div id="preview" style="border-style: solid; border-color: black; border-width: 1px; padding: 5px;"> </div> </form> EndHereDoc; $facebook->api_client->profile_setFBML($fbml, $user); echo "<p>the following form was added to the profile box:</p>"; echo $fbml; ?>
Auf der Canvas Seite solltest Du nun die neue Text-Box sehen:


0 Kommentar(e)

Zum Posten von Kommentaren bitte