Spaß mit Twitter ohne API

Vor 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, wie man die letzten vier Tweets seines Twitteraccounts (oder des Accounts eines Freundes) auf seinem Blog darstellen kann.

Hier der Codeschnipsel:

$feed = "http://search.twitter.com/search.atom?q=from:creanu&rpp=4";
$xml = simplexml_load_file($feed);
echo "Meine letzten Tweets: 

";
foreach($xml->entry as $entry) {
$tweet = $entry->title;
$title = htmlentities($tweet,ENT_QUOTES, 'utf-8');
echo $tweet."

";
}

Die Variable $feed enthält die URL zum Feed der Suche. Diesen Feed erhält man ganz einfach, indem man das gesuchte (in diesem Fall “from:creanu”) in die Twittersearch eingibt und auf “Rss Feed for this query” klickt. Diesen Feed kann ich dann mit der simplexml-Funktion bearbeiten. Mittels einer foreach-Schleife werden alle Tweets (in diesem Fall 4 Stück, da wir die Suche mit dem Parameter rpp=4 auf 4 Ausgaben begrenzen) aufgeführt.

So nun möchte ich den Code noch ein wenig umschreiben für einen Hashtag und alle Tweets aufführen, die mit diesem Hastag getaggt wurden. Für dieses Beispiel, möchte ich auf ein Hashtag zurückgreifen, das bisher nur einmal verwendet wurde (zumindes laut der Twittersearch, die nur X Wochen zurück geht). #hebräisch.

$feed = "http://search.twitter.com/search.atom?q=%23hebraeisch";
$xml = simplexml_load_file($feed);
echo "Tweets mit dem Hashtag #hebraeisch: 

";
foreach($xml->entry as $entry) {
$tweet = $entry->title;
$title = htmlentities($tweet,ENT_QUOTES, 'utf-8');
echo $tweet."

";
}

?>

“%23″ in der URL steht für # (wer hätte das gedacht!?)

Mit dem Code werden jetzt alle Tweets mit dem Hashtag #hebraeisch angezeigt. Nun möchte ich passend dazu noch den Twitternamen, desjenigen anzeigen, der den Hashtag getwittert hat.

$twitteruser = $entry->name;

und dann die Ausgabe:

echo $twitteruser.": ".$tweet;

Woher weiß ich, wie die Objekte heißen!?

Die Variable $entry ist ein Objekt, das mehere Elemente enthält. Nämlich alle Elemente, die auch die XML-Datei enthält. XML-Dateien sind wie folgt aufgebaut:

<name>creanu</name>

Mein Tweet

<datum>07.10.2009</datum>

Wenn ich nun auf den Inhalt des Elements “datum” zugreifen möchte, tue ich das mit $entry->datum. Um herauszufinden welche Elemente es in der XML Datei gibt und wie sie heißen öffne ich sie im Browser und lasse mir den Quelltext anzeigen. Falls du eingestellt haben solltest, dass sich Feeds automatisch in deinem Feedreader öffnen, klickst du den Feed und speicherst ihn auf deiner Festplatte (Ziel speichern unter…) um ihn dort mit einem Texteditor zu öffnen und dir die Struktur anzusehen.

Anmerkungen: