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


Gib einen Text ein und klicke auf das "Draw text below" Feld...


...und der Text sollte sofort unter dem Feld erscheinen:


Die gleiche Funktionalität ist nun auch auf der Profil-Seite verfügbar:

5 Den Feed Reader erstellen

Da Du nun einen kleinen Einblick in die Funktionsweise von Facebook Anwendungen gewonnen hast, können wir unseren RSS Feed Reader erstellen. Zuerst benötigen wir eine Art Skript, das RSS Feeds parsen kann und uns hilft, daraus HTML zu erstellen. MagpieRSS ist dafür am Besten geeignet (in PHP geschrieben). Bitte sieh Dir diese Anleitung an um zu erfahren, wie MagpieRSS verwendet wird (ich werde hier nicht ins Detail gehen): Easy RSS Syndication with MagpieRSS
Lass uns nun MagpieRSS in ein Unterverzeichnis unserer Feed Reader App, /var/www/fb/htf_feed_reader/rss, runter laden und installieren:

mkdir /var/www/fb/htf_feed_reader/rss
cd /var/www/fb/htf_feed_reader/rss
wget http://mesh.dl.sourceforge.net/sourceforge/magpierss/magpierss-0.72.tar.gz
tar xvfz magpierss-0.72.tar.gz
cd magpierss-0.72
cp rss_* ../
cp -fr extlib/ ../
cd ..
rm -fr magpierss-0.72*

Als Nächstes erstellen wir ein Cache Verzeichnis (in dem MagpieRSS den Feed cachen kann, wenn Du diese Funktion nutzen möchtest) namens magpie_cache und räumen allen Benutzern Schreibrechte ein, damit der Apache Benutzer (oder der Benutzer, der PHP Skripte ausführt, wenn Du suPHP verwendest) darin schreiben kann:

cd /var/www/fb/htf_feed_reader
mkdir magpie_cache
chmod 777 magpie_cache

Nun integrieren wir MagpieRSS in unser index.php Skript (sieh Dir Easy RSS Syndication with MagpieRSS an, - das folgende Skript verwendet bereits RSS Caching und CSS Styling):

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


<?php
define('MAGPIE_CACHE_DIR', './magpie_cache'); define('MAGPIE_CACHE_ON', 1); define('MAGPIE_CACHE_AGE', 600); require_once('appinclude.php'); require_once('rss/rss_fetch.inc'); $rss = @fetch_rss('http://www.howtoforge.com/node/feed'); $fbml = '<div style="margin:0 10px 0 10px;">'; $fbml .= '<table border="0" width="100%" style="margin: 5px 5px 5px 5px;"><tr><td valign="top" width="80%"><a href="'.$rss->channel['link'].'" style="font-weight: bold;">'.$rss->channel['title'].'</a></td><td valign="top" width="80%"><fb:share-button class="meta"> <meta name="medium" content="blog"/> <meta name="title" content="'.htmlspecialchars(strip_tags($rss->channel['title'])).'"/> <meta name="description" content="'.htmlspecialchars(strip_tags($rss->channel['description'])).'"/> <link rel="target_url" href="'.$rss->channel['link'].'"/> </fb:share-button></td></tr></table>'; foreach ($rss->items as $item) { $fbml .= '<div style="border-bottom: 2px solid #CCCCCC; padding-bottom:5px;"><br><div style="border-bottom: 1px dotted #CCCCCC; border-top: 1px dotted #CCCCCC;"><table border="0" width="100%" style="margin: 5px 5px 5px 5px;"><tr><td valign="top" width="80%"><a href="'.$item['link'].'" style="font-weight: bold;">'.$item['title'].'</a></td><td valign="top" width="80%"><fb:share-button class="meta"> <meta name="medium" content="blog" /> <meta name="title" content="'.htmlspecialchars(strip_tags($item['title'])).'" /> <meta name="description" content="'.htmlspecialchars(strip_tags($item['description'])).'" /> <link rel="target_url" href="'.$item['link'].'" /> </fb:share-button></td></tr></table></div>'; if($item['description']) $fbml .= $item['description']; $fbml .= '</div>'; } $fbml .= '</div>'; $facebook->api_client->profile_setFBML($fbml, $user); echo $fbml; ?>
Bitte ersetze die URL in $rss = @fetch_rss('http://www.howtoforge.com/node/feed'); mit Deiner eigenen RSS URL.

Wie Du siehst, cache ich den RSS Feed hier für 10 Minuten (600 Sekunden). Wenn Du Caching nicht magst, kannst Du define('MAGPIE_CACHE_ON', 1); zu define('MAGPIE_CACHE_ON', 0); ändern.

Außerdem verwende ich hier eine interessante FBML Funktion, das "Share" Feld. Unter Verwendung des <fb:share-button> Syntax kannst Du "Share" Felder neben einzelnen Items Deines Feeds anbringen und Facebook Benutzern erlauben, ihren Freunden mitzuteilen, dass sie etwas Interessantes in Deinem Feed gefunden haben. Sieh Dir Folgendes an um mehr über das "Share" Feld zu erfahren:

http://wiki.developers.facebook.com/index.php/Fb:share-button
Nun besuchen wir wieder die Canvas Seite unserer Anwendung. Wenn Du alles richtig gemacht hast, solltest Du nun Deinen RSS Feed sehen:


Gehe zu Deinem Profil. Auch dort solltest Du den RSS Feed sehen:


Glückwunsch, Dein Feed Reader funktioniert!

6 Den Feed Reader abstimmen

Nun können wir den Auftritt unseres RSS Feeds ein wenig abstimmen. Zum Beispiel können wir einen Titel hinzufügen indem wir den <fb:header>tag verwenden. Bearbeite index.php und ersetze die $fbml = '<div style="margin:0 10px 0 10px;">'; Zeile mit dieser Zeile:

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


[...]
$fbml = '<fb:header>HowtoForge RSS Feed Reader</fb:header><div style="margin:0 10px 0 10px;">'; [...]
So wird es aussehen. Unser Feed hat nun einen Titel/eine Überschrift:


Das Gleiche auf der Profil-Seite:


Wenn Du nicht möchtest, dass der Titel so viel Platz benötigt, kannst Du padding wie folgt deaktivieren:

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


[...]
$fbml = '<fb:header decoration="no_padding">HowtoForge RSS Feed Reader</fb:header><div style="margin:0 10px 0 10px;">'; [...]
So wird es aussehen:



0 Kommentar(e)

Zum Posten von Kommentaren bitte