Twitter im Blog anzeigen

Kategorie: Webentwicklung, microblogging

Bei diesem Artikel handelt es sich um einen Gastpost von Chaim.

Twitter ist ein sehr flexibler Onlinedienst, der seinen Erfolg mit Sicherheit auch seiner
umfangreichen API zu verdanken hat. Twitter selbst liefert passend zu dieser API eine
umfangreiche Dokumentation und wenn man sich die Mühe macht ein wenig zu googlen, findet man noch viele weitere Tutorials um mit der Twitter API zu arbeiten.

Doch manchmal, möchte man gar nicht so umfangreich damit arbeiten sondern einfach
nur ein paar Tweets auf seinem Blog in der Sidebar präsentieren oder ähnliches. So ging es mir zumindest vor einigen Tagen. Ich wollte für einen Freund, einen kleinen Twitterfeed in seinen Blog einbauen und habe aufgrund meiner Faulheit natürlich gleich nach einem Codeschnipsel gegoogled. Zunächst habe ich aber nur Sachen gefunden, wo mit der Twitter API gearbeitet wurde und somit eine Passworteingabe erforderlich war. Ich fands etwas blöd, ihn nach seinem Passwort zu fragen und war mir auch nicht ganz sicher, ob er es von alleine schafft sein Passwort in der Variable zu ergänzen ;-) deswegen habe ich mir überlegt, dass das auch anders gehen muss.

Und es geht auch anders, nämlich mit der Twitter Search! Mit der Suche, lassen sich Tweets von bestimmten Personen mittels Operatoren anzeigen. Zum Beispiel kann ich mit from:creanu alles anzeigen lassen, was ich getwittert habe. Mit to:creanu, sehe ich wer mir einen Replay geschickt hat.

So weit, so gut. Nun kommt der eigentliche Trick: Jede Suche ist auch als Feed verfügbar. Ihr findet ein kleines RSS-Icon auf der rechten Seite der Twittersuche, daneben steht „Feed for this query“. Die Adresse zu diesem Feed kopiert ihr und verarbeitet sie nun mittels PHP und der Simplexml Schnittstelle, die mit PHP5 mitgeliefert wird und standardmäßig aktiviert ist.

Hier mein Codebeispiel, um die vier letzten Tweets von mir anzeigen zu lassen:


$feed = "http://search.twitter.com/search.atom?q=from:creanu&rpp=4";
$xml = simplexml_load_file($feed);
echo "<b>Meine letzten Tweets:</b> <br /><br />";
foreach($xml->entry as $entry) {
$tweet = $entry->title;
$title = htmlentities($tweet,ENT_QUOTES, 'utf-8');
echo $tweet."<br /><br />";
}


Die Variable $feed beinhaltet die Adresse zu dem Feed der Suchanfrage. Der Parameter
rpp mit dem Wert 4 sorgt dafür, dass nur die letzten 4 Tweets angezeigt werden.
Mit simplexml_load_file($feed) lade ich nun die Daten und verarbeite Sie mittels einer
Foreach Schleife.

Die Informationen werden mit XML „verschachtelt“ bereit gestellt, jeder Tweet befindet sich in dem „Container“ „Entry“, deswegen muss ich – um die Tweets zu verarbeiten – jedes Mal mit meiner Schleife die Container abarbeiten. In diesem Container befindet sich der Inhalt meines Tweets im Objekt „Title“. Diesen Inhalt speichere ich in der Variable $title und formatiere ihn dann noch schnell mit htmlentities. Mittels echo wird er dann einfach ausgegeben.

Nun kann ich das Ganze natürlich noch beliebig variieren. Zum Beispiel die Anzahl der ausgegebenen Tweets erhöhen oder weitere Informationen aus der XML Datei auslesen. Wenn ihr euch die XML Datei einmal anschauen wollt, solltet ihr im Firefox ausschalten, dass Webfeeds automatisch mit eurem RSS Reader geöffnet werden und stattdessen im Browser angezeigt werden. Den Feed ruft ihr dann auf und lasst euch den Quelltext
anzeigen. Dann seht ihr, wie die einzelnen Objekte benannt sind und könnt die Informationen auslesen.

Post to Twitter

Geschrieben von chaim am 30. 7. 2009
Abgelegt unter: Webentwicklung, microblogging
Tags: , , , , , , , , , ,

7 Kommentare zu “Twitter im Blog anzeigen”

  • Deine Lösung ist 1000x besser als das JavaScript von Twitter, das manchmal stehenbleibt. Evlt. kann man es noch um einen Cache erweitern:

    $filename = “twitter.xml”;
    $url= “http://search.twitter.com/search.atom?q=from:creanu&rpp=4″;
    $cacheTime = 7200; // seconds

    if (!cachecheck($filename, $cacheTime)) {
    $data = file_get_contents($url);
    $fp = fopen($filename, “w”);
    fputs($fp, $data);
    fclose($fp);
    }

    [... die Verarbeitung ... ]

    function cachecheck($filename_cache, $timeout = 3600)
    {
    if (file_exists($filename_cache)) return (mktime() – filemtime($filename_cache) < $timeout)? true : false;
    else return false;
    }

  • Alex sagt:

    Danke für den tollen Tipp. Habe das direkt mal eingebaut und es funktioniert super!

    Grüße Alex

  • [...] Code, um Twitter Beiträge in WordPress anzuzeigen, habe ich vom Netheweb-Blog entnommen, bei dem es sich um einen Gastbeitrag von Chaim [...]

  • Katja sagt:

    Danke erstmal für den netten code.
    Doch wie bekomme ich denn meine tweets auch mit ü,ä, ö und so weiter angezeigt?
    utf-8 wäre ja falsch.

  • Sensei sagt:

    das müsste doch eigentlich über die metadaten gehn.

  • Katja sagt:

    @Sensei Da wird nur der normale Text auf der Seite korrekt angezeigt. Aber nicht die eingefügten tweets. Schon mal probiert mit ä,ü und so weiter?

  • [...] einiger Zeit habe ich einen Gastartikel auf Netheweb veröffentlicht, darüber wie man seinen Twitterfeed im Blog anzeigen kann ohne sich in die Twitterapi einarbeiten zu müssen. Der Artikel zeigt anhand eines Beispiels, [...]

Einen Kommentar hinterlassen