Hier ein Wunsch-Tutorial: Letzten Tweet aus der Twitter Timeline auslesen und via AJAX in eine Webseite laden. Tim P. hatte mir heute eine Email geschrieben, wie ich die Last Tweet Funktion auf meiner Webseite (www.pascal-bajorat.de) realisiert habe. Hier also die Lösung die ich mir zusammen gebastelt habe:
Anzeige:
Der PHP-Code:
<?php// PHP Header senden um das Dokument als UTF-8 HTML Dokument auszuweisenheader('Content-Type: text/html; charset=UTF-8');// Variable mit der URL zu meiner Twitter Timeline als XML-Datei$TimelineXML='http://www.twitter.com/status/user_timeline/Alpher_de.xml';// XML-Feed laden und in der Variable $Twitter speichern// Das @ verhindert eine PHP Fehlerausgabe, sollte die XML nicht erreichbar sein wird das Script durch die() abgebrochen// und eine Fehlermeldung ausgegeben: Twitter.com ist aktuell offline.$Twitter=@simplexml_load_file($TimelineXML) or die('Twitter.com ist aktuell offline.');// Nun speichern wir den Wert des letzten Tweets in der Variable $Tweet// Der Pfad status->text entspricht dem Pfad der XML Struktur$Tweet=$Twitter->status->text;// Hier trennen wir den Tweet in die einzelnen Wörter auf$Tweet=explode(' ',$Tweet);// Mit foreach lassen wir jetzt jedes einzelne Wort des Tweets durch eine Schleife laufenforeach($Tweetas$t){// Wenn ein Wort http:// enthält ist es "wahrscheinlich" ein Link und die if Anweisung wird ausgeführtif(strstr(strtolower($t),'http://')){// Nun legen wir einen a Tag um das mit http:// beginnende Wort$t='<a href="'.$t.'" target="_blank">'.$t.'</a>';}// Dann setzen wir den String wieder zusammen// Der Punkt (.) spielt hier eine entscheidende Rolle$HTMLtweet.=$t.' ';}// Jetzt geben wir den überarbeiteten Tweet ausecho$HTMLtweet;?>
<?php
// PHP Header senden um das Dokument als UTF-8 HTML Dokument auszuweisen
header('Content-Type: text/html; charset=UTF-8');
// Variable mit der URL zu meiner Twitter Timeline als XML-Datei
$TimelineXML = 'http://www.twitter.com/status/user_timeline/Alpher_de.xml';
// XML-Feed laden und in der Variable $Twitter speichern
// Das @ verhindert eine PHP Fehlerausgabe, sollte die XML nicht erreichbar sein wird das Script durch die() abgebrochen
// und eine Fehlermeldung ausgegeben: Twitter.com ist aktuell offline.
$Twitter = @simplexml_load_file($TimelineXML) or die('Twitter.com ist aktuell offline.');
// Nun speichern wir den Wert des letzten Tweets in der Variable $Tweet
// Der Pfad status->text entspricht dem Pfad der XML Struktur
$Tweet = $Twitter->status->text;
// Hier trennen wir den Tweet in die einzelnen Wörter auf
$Tweet = explode(' ', $Tweet);
// Mit foreach lassen wir jetzt jedes einzelne Wort des Tweets durch eine Schleife laufen
foreach($Tweet as $t){
// Wenn ein Wort http:// enthält ist es "wahrscheinlich" ein Link und die if Anweisung wird ausgeführt
if(strstr(strtolower($t),'http://')){
// Nun legen wir einen a Tag um das mit http:// beginnende Wort
$t = '<a href="'.$t.'" target="_blank">'.$t.'</a>';
}
// Dann setzen wir den String wieder zusammen
// Der Punkt (.) spielt hier eine entscheidende Rolle
$HTMLtweet .= $t.' ';
}
// Jetzt geben wir den überarbeiteten Tweet aus
echo $HTMLtweet;
?>
Der jQuery Code:
// jQuery // Alles in der ready Funktion wird erst dann ausgegeben, wenn der komplette DOM geladen ist
$(document).ready(function(){// Über die Funktion get laden wir via AJAX die Datei last-tweet.php und übergeben ein
$.get('last-tweet.php',function(data, textStatus, XMLHttpRequest){// Wenn die Variable textStatus das Wort success enthält, hat der AJAX Request geklapptif(textStatus=='success'){// Jetzt geben wir den geladenen Content aus der Variable data in dem div mit der ID #ajaxContent aus
$('#ajaxContent').html('<p>'+data+'<\/p>');});}});
// jQuery
// Alles in der ready Funktion wird erst dann ausgegeben, wenn der komplette DOM geladen ist
$(document).ready(function(){
// Über die Funktion get laden wir via AJAX die Datei last-tweet.php und übergeben ein
$.get('last-tweet.php', function(data, textStatus, XMLHttpRequest){
// Wenn die Variable textStatus das Wort success enthält, hat der AJAX Request geklappt
if(textStatus=='success'){
// Jetzt geben wir den geladenen Content aus der Variable data in dem div mit der ID #ajaxContent aus
$('#ajaxContent').html('<p>'+data+'<\/p>');
});
}
});
Ich hoffe ich konnte dir Tim und auch euch anderen damit einwenig weiterhelfen. Vielleicht könnt ihr das Script ja gebrauchen. Falls es Fragen gibt, dann ab damit in die Kommentare.
Hast du Ergänzungen, Anregungen oder eine andere Meinung zu diesem Thema? Dann schreib uns dein Feedback doch einfach in die Kommentare weiter unten, wir freuen uns auf deine Rückmeldung.
Wenn du möchtest, kannst du diesen Artikel gerne mit deinen Freunden oder Kollegen teilen und weiterempfehlen oder uns Flattrn: . Wir sind dir für jede Unterstützung dankbar!
Pascal Bajorat ist Mediengestalter und arbeitet als Webdesigner / Webentwickler, Autor und Trainer in Berlin. In den vergangenen Jahren hat er sich vor allem auf das CMS WordPress und die Entwicklung von hochwertigen Webseiten und Sonderlösungen spezialisiert. Er hat den Webdesign-Podcast.de 2010 gegründet.
also nicht schlecht aber mich wurde mal interessieren wie das mit 3 News geht so das immer nur 33 gezeigt wird konntest ja dein tut mal erweitern xD were echt super
ja das hab ich jetzt hin bekommen xD aber komme mit dem code nicht so weiter, denke mir das php Script soll dort hin wo der twitter feed hin soll, denk ich mal oder ? und der jQuery code hab ich ihn Head tag rein gebaut zwischen gepost ist das richtig, weil wo ich das getestet habe hat der mir nicht angezeigt
@Morris
Wenn du das ganze direkt mit PHP einbindest, dann benötigst du den jQuery Code nicht. Möchtest du den letzten Tweet allerdings via AJAX einbinden, dann müsstest du ihn schon einbinden, aber halt an deine Seite und deine ID’s anpassen.
Vielen dank fuer dein Script!! Endlich eins das auch vernuenftig funktioniert.. hab schon ca 3 ausprobiert und ca eine Stunde rumgefummelt und gesucht. Du brachtest nun das Ergebniss. Danke und einen schoenen Tag wuensche ich!
Der Benachrichtigungs-Dienst wird von WordPress.com (Automattic Inc., USA ) bereitgestellt. Mit der Anmeldung akzeptierst du die Datenschutzerklärung. Die Abmeldung / Abo-Verwaltung ist jederzeit über diesen Link möglich.
Er würde uns abonnieren! Chuck Norris roundhouse kick approved!
Abonniere unseren Newsletter und erhalte exklusive Artikel, Informationen und Sonderangebote für Stockdienste oder Webentwickler-Tools.
hey,
vielen dank für die schnelle Hilfe !
also nicht schlecht aber mich wurde mal interessieren wie das mit 3 News geht so das immer nur 33 gezeigt wird konntest ja dein tut mal erweitern xD were echt super
mfg Morris
noch nee frage wie und wo bekomme ich den Link her hab schon mit m einer id oder Login name probiert ging nicht
@Morris
Es müsste aber eigentlich dein Benutzername sein:
http://www.twitter.com/status/user_timeline/USERNAME.xml
ja das hab ich jetzt hin bekommen xD aber komme mit dem code nicht so weiter, denke mir das php Script soll dort hin wo der twitter feed hin soll, denk ich mal oder ? und der jQuery code hab ich ihn Head tag rein gebaut zwischen gepost ist das richtig, weil wo ich das getestet habe hat der mir nicht angezeigt
@Morris
Wenn du das ganze direkt mit PHP einbindest, dann benötigst du den jQuery Code nicht. Möchtest du den letzten Tweet allerdings via AJAX einbinden, dann müsstest du ihn schon einbinden, aber halt an deine Seite und deine ID’s anpassen.
^^ ok das ist mir noch bisschen zo hoch, habe dich mal in icq geadded
Vielen dank fuer dein Script!! Endlich eins das auch vernuenftig funktioniert.. hab schon ca 3 ausprobiert und ca eine Stunde rumgefummelt und gesucht. Du brachtest nun das Ergebniss. Danke und einen schoenen Tag wuensche ich!
lg