Twitter für WebsiteBaker

In Ermangelung eines Twitter-Modules für WebsiteBaker habe ich kurzerhand ein eigenes geschrieben. Das Modul nutzt nicht die Twitter-API sondern ließt die Tweets aus dem automatisch generierten RSS-Feed der eigenen Timeline. Dadurch sind keine Login-Daten nötig – als einzige Eingabe erwartet das Modul die Eingabe der Feed-URL, mehr dazu aber später. Unter der Haube werkelt SimplePie, das beliebte Skript-Framework für den Umgang mit RSS-Feeds.

Hinweis: Aufgrund von Änderungen an der Twitter-API (Stand 09/2012) wird der RSS-Feed der eigenen Timeline in Kürze nicht mehr zur Verfügung stehen. WB Tweets wird dann nicht mehr funktionieren! Aus diesem Anlass muss ich leider von der Verwendung von WB Tweets in der aktuellen Fassung abraten.

Was ist Twitter? Was sind Tweets?

Twitter ist ein soziales Netzwerk und ein Mikro-Blogging-Dienst. Angemeldete Benutzer können Text-Nachrichten mit maximal 140 Zeichen senden und die Nachrichten anderer Benutzer empfangen. Die Nachrichten werden „Updates“ oder „Tweets“ (engl. to tweet, deutsch zwitschern) genannt. Das soziale Netzwerk beruht darauf, dass man anderen Benutzern folgt (engl. „following“), das heißt die Updates anderer Benutzer abonniert. Benutzer, die den eigenen Updates folgen nennt man „Follower“. Auf der Twitter-Startseite kann man Updates eingeben und die Updates der Personen nach der Zeit sortiert sehen, denen man folgt. Der Absender kann entscheiden, ob er die Updates allen zur Verfügung stellen oder den Zugang auf eine Freundesgruppe beschränkt.

Seite „Twitter“. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 2. Dezember 2008, 08:08 UTC. URL: http://de.wikipedia.org/w/index.php?title=Twitter&oldid=53662743 (Abgerufen: 5. Dezember 2008, 21:08 UTC)

Damit wäre die Frage geklärt, was Twitter ist – die Frage nach dem „warum“ muss sich aber jeder selbst beantworten. Tweets können langweilen („esse gerade eine Pizza“), Tweets können anregen („habe ein tolles neues Buch entdeckt: …“), Tweets können informieren („klasse Songs auf der Seite der Band Mustermann zum freien Download gefunden“) und Tweets können unterhalten („verdammt, war die Radkralle gestern schon an meinem Auto?“). Welchen Nutzen der Einzelne aus den Tweets Anderer zieht, kann stark variieren.

Eines dürfte jedoch klar sein: Wer einmal der Community beigetreten ist, folgt nicht nur den Tweets Anderer sonder „twittert“ auch selber fleißig mit. Mal mehr, mal weniger. Twittern scheint in gewissem Maße ansteckend zu sein.

Deine Tweets auf Deiner Website

Das schonmal vorab: Bitte niemals Twitter-Feeds fremder Personen in die eigene Site einbinden ohne vorher eine Genehmigung des Autors eingeholt zu haben. Dies könnte als Verstoß gegen das Urheberrecht ausgelegt werden.

Mit dem Modul „WB Tweets“ kann der geneigte Twitterer seine Tweets auf seiner Website darstellen. Websitebesucher bleiben so über die Tweets des Sitebetreibers auf dem Laufenden ohne extra die Twitter-Site kontaktieren zu müssen. WB Tweets ist eine ideale Lösung um die eigene Site mal schnell mit aktuellen Informationen zu versorgen (dank Twitter-API auch via SMS, Instant-Messenger oder per Applikation auf dem Telefon) oder um auf Familien-Seiten die Tweets der einzelnen Familienmitglieder zentral zusammen zu fassen.

WB Tweets Backend Einstellungen

WB Tweets Backend Einstellungen

WB Tweets Frontend Ausgabe

WB Tweets Frontend Ausgabe

Installation und Einrichtung

WB Tweets wurde unter Website Baker 2.6.7 und 2.7 erfolgreich getestet.
Nach der Installation des Modules im Website Baker Backend, steht der neue Seitentyp „WB Tweets“ zur Verwendung bereit. Nach dem Anlegen einer neuen Seite muss lediglich der Twitter-Mitgliedsname und die URL zum Twitter-Feed angegeben werden. Die Angabe des Twitter-Passwortes ist nicht erforderlich, da „WB Tweets“ lediglich lesend auf die „Public Timeline“ zugreift. Als „Private“ gekennzeichnete Twitter-Feeds können daher nicht abgefragt werden.

Die URL des RSS-Feed lässt sich unter http://twitter.com/DeinName ermitteln:
Im Quelltext dieser Seite einfach nach „rss“ suchen und man stößt schnell auf einen Eintrag in folgender Form:

http://twitter.com/statuses/user_timeline/19947672.rss wäre in diesem (imaginären) Beispiel die Feed-URL.

Mit dem Einzug des neuen Twitter-Layouts wurde die Angabe der URL zum RSS-Feed aus dem Quelltext entfernt. Die Feed-URL lässt sich also nicht mehr so einfach wie oben beschrieben ermitteln. Hinter den Kulissen funktioniert aber in Sachen RSS alles wie zuvor – nur die Feed-URL muss eben händisch ermittelt werden. Unter http://softwarehacks.net/2011/04/twitter-create-rss-feed-from-a-users-timeline/ http://www.mosio.com/mobileanswers/how-to-create-an-rss-feed-url-from-a-twitter-account-timeline/ findet Ihr eine kurze Beschreibung hierzu. Die URL zum RSS-Feed meines Twitter-Accounts lautet beispielsweise: https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=digitalbricks
Hinweis: Aufgrund von Änderungen an der Twitter-API (Stand 09/2012) wird der RSS-Feed der eigenen Timeline in Kürze nicht mehr zur Verfügung stehen. WB Tweets wird dann nicht mehr funktionieren! Aus diesem Anlass muss ich leider von der Verwendung von WB Tweets in der aktuellen Fassung abraten.

Die Einstellungen im Backend bieten auch die Möglichkeit, Caching des Feeds zu aktivieren. Ursprünglich war hier die Caching-Funktionalität des RSS-Parsers „SimplePie“ vorgesehen — leider funktioniert diese nicht zusammen mit Twitter. Aus diesem Grund wurde eine eigenständige Caching-Lösung in WB Tweets (ab Version 0.4) integriert.

Ein Blick unter die Haube

„WB Tweets“ basiert auf „TwitterZoid“ von Philip Newborough. TwitterZoid seinerseits greift auf „SimplePie“ zurück. „SimplePie“ interpretiert denn RSS-Feed, „TwitterZoid“ extrahiert aus der SimplePie-Ausgabe die Twitter speziefischen Einträge und bringt die Zeitsempel auf das Twitter typische Format („5 minutes ago“). „WB Tweets“ letztlich ist die Integration der beiden Techniken in das Modulsystem von Website Baker. Da es falsch ist, sich mit mit fremden Federn zu schmücken: Den Löwenanteil des Moduls haben sicher die Macher von „SimplePie“ beigetragen. Mit über 13.000 Zeilen ist ihr PHP-Skript einfach mal überwältigend groß. Aber auch Phillip Newborough hat mit „TwitterZoid“ einen wirklich guten Job gemacht.

Danksagung

Mein besonderer Dank gilt Sascha Mihank, der während der Entwicklung von „WB Tweets“ nicht müde wurde, das Modul zu testen und immer mit Rat & Tat zur Seite stand.

Ebenfalls vielen Dank an Christian Badberg für die Übermittelung eines kleinen Fehlers in WB Tweets 0.21 und sein Engagement als zusätzlicher Beta-Tester.

Danke auch an Jurgen, der mich in den Kommentaren auf die Änderung bei Twitter hinsichtlich dem Ermitteln der Feed-URL aufmerksam gemacht hat. (Beschreibung siehe http://softwarehacks.net/2011/04/twitter-create-rss-feed-from-a-users-timeline/)

Changelog & Download

11.02.2011 WB Tweets 0.44

  • Durch die Einführung des Twitter-eigenen URL-Shortening Services http://t.co wurde die automatische URL-Erkennung außer Tritt gebracht. Denn diese erwartete einen Domainnamen mit mindestens zwei Zeichen. Da der Service von Twitter jedoch nur ein Zeichen im Domainnamen verwendet, wurden derart gekürzte Links nicht erkannt. In Version 0.44 wurde dieses Problem behoben.

9.06.2010 WB Tweets 0.43

  • Bei aktiviertem Caching wurde – sofern ein gültiger Cache verfügbar ist – die Feed-URL intern auf den Cache umgeleitet. Das führte dazu, dass der Subscribe-Lik (RSS-Feed abonnieren) ober- und unterhalb der Tweets ungültig wurde (und ebenfalls auf den Cache zeigte). Version 0.43 behebt diesen Fehler.

9.09.2009 WB Tweets 0.42

  • Im Live-Betrieb kam es vor, das Twitter kein XML auslieferte, sondern Teile eines XHTML-Dokumentes welches nicht vom eingebauten RSS-Parser verarbeitet werden konnte. Durch das neu eingeführte Caching wurde dann das falsche Dokument gespeichert und führte dazu, dass während der Lebensdauer des Caches keine Tweets angezeigt wurden. In Version 0.42 wird das von Twitter gelieferte Dokument auf XML-Merkmale geprüft — beginnt das empfangene Dokument nicht mit „<!–?xml" wird das Cachen übersprungen und Twitter erneut angefragt. (getancache.php, ab Zeile 69).
  • Der Cache wird nur angelegt, wenn das empfange Dokument XML-Merkmale enthält.
  • Ist das Caching deaktiviert, wird die gesammte Caching-Prozedur umgangen. WB Tweets 0.42 verhält sich dann wie Versionen vor der Einführung des lokalen Cachings (Version 0.3).
  • Option zum leeren des Caches im Backend hinzugefügt.
  • Um das Verhalten von WB Tweets zu überprüfen, wird die Art der Tweet-Quelle als HTML-Kommentar ausgegeben (). Damit kann überprüft werden, ob die Tweet aus dem Cache oder von Twitter direkt geliefert wurden und ob das Caching erfolgreich war.
  • Upgrade PHP entfernt. Vorraussetzung für das Update auf WB Tweets 0.42 ist mindestens WB Tweets 0.3.

6.09.2009 WB Tweets 0.41

  • Ein kleineres Problem beim Empfangen leerer Feeds behoben. Das führte bisher zu einer PHP Notice. Außerdem wurde ein kleines Skript zum leeren des Caches integriert: „cleanup.php“ im Modul-Verzeichnis.

6.09.2009 WB Tweets 0.4

  • Lokales Zwischenspeichern (Caching) des RSS-Feeds ist nun möglich. Damit kann die Anzahl der Zugriffe auf den Twitter-Server begrenzt und die Ladezeit der Seite beschleunigt werden. Twitter erlaubt maximal 100 Zugriffe pro Stunde; mit eingeschaltetem Caching ist das nun auch auf stark frequentierten Seiten kein Problem mehr.
  • WB Tweets 0.4 ist unter Website Baker 2.8 getestet und ohne Auffälligkeiten lauffähig. Ein französischer Nutzer meldete im Website-Baker-Forum Probleme mit Umlauten — diese konnte ich in meiner Testumgebung unter UTF-8 nicht bestätigen.

23.5.2009 WB Tweets 0.3

  • @Replies können von der Ausgabe ausgeschlossen werden. Wenn aktiviert, werden alle Tweets, welche mit „@“ beginnen, nicht angezeigt. Das Ausschließen von Reply-Tweets verringert allerdings die Gesamtzahl der zur Verfügung stehenden Tweets (Twitter liefert maximal 20 Tweets per RSS).
  • #Hashtags werden jetzt automatisch auf die Twitter Search gelinkt.

17.5.2009 WB Tweets 0.22

  • Problem bei der automatischen Verlinkung von Twitter-Usernames mit Unterstrich („_“) behoben. In früheren Versionen wurde der Hyperlink beim ersten Auftreten eines Unterstrichs beendet.

17.4.2009 WB Tweets 0.21

  • Kopf- und Fußzeile kann auf Wunsch abgeschaltet werden
  • Anzahl der dargestellten Tweets kann gesteuert werden (1, 5, 10, 15)

8.2.2009 WB Tweets 0.14

  • Markup/Skript etwas bereinigt

9.12.2008 WB Tweets 0.13

  • „WB Tweets 0.13“ kommt mit deutschem und englischem Sprachpakt
  • Feed-Caching vorbereitet (VERWENDUNG MOMENTAN NCHT EMPFOHLEN!)
  • für WB-Umgebungen mit abgeschaltetem „register_frontend_modfiles“ wird das CSS bei der Ausgabe direkt ins HTML „zurecht gebogen“. Aus relativen Pfadangaben werden absolute URLs generiert. „WB Tweets“ sollte daher auch auf etwas älteren WB-Installationen funktionieren.
  • das Backend liefert eine Möglichkeit unter ISO-8859-1 die ankommenden UTF-8-Zeichen zu dekodieren. Wer Probleme mit Umlauten und Sonderzeichen feststellt, sollte das mal ausprobieren.

 


Letzte stabile Version

WB Tweets 0.44

23 Kommentare Schreibe einen Kommentar

  1. Hi, vielen Dank für die interesante Ausführung, wollte das sofort einmal auf meiner Seite ausprobieren, scheitere aber bereits beim „entpacxken“. Zwei Fehlermeldungen: Frontend.jsp und Backend.jsp konnten nicht geöffnet werden. Ist dir bekannt, um was es sich da handelt und wie man den fehler behebt? Viele Grüsse Mario

    • Hallo Mario, leider ist mir das geschilderte Problem nicht bekannt. Es gibt auch keine .jsp-Dateien, aber Du meinst sicher frontend.js und backend.js. Hast Du schon andere Module installiert? Nur, um auszuschliessen, dass es an der Modul-Installationsroutine liegt. Ist auf alle Fälle äußerst seltsam, dass nur diese beiden Dateien „bemängelt“ werden … aber ich kann mir das Problem nicht erklären. Kannst Du den Installtionsprozess und das Auftreten der Fehlermeldung noch genauer beschreiben? Beste Grüße André P.S.: Meine Mail an die von Dir angegebene Adresse kam mit Unzustellbarkeitsmeldung zurück.

  2. Vielen dank für dein Feedback, André. Hektische Zeit vor den Feiertagen, die du hoffentlich angenehm verbracht hast. Nun, ich habe mich wohl als totaler Laie geoutet. Ich war der Meinung, dass WB Tweets als eigenständige Software in den „Programme“-Ordner installiert werden könne. Deinem Komentar entnehme ich, dass das wohl doch nict so simpel ist. Ich habe üblicherweise jemanden, der mir mit den weniger offensichtlichen Dingen zur Hand geht, der ist jedoch für mehrere Wochen auf Reise. Ich hätte hlat gerne News-Meldungen auf meiner Webseite P1Mag.de und WB Tweets klang wie die Lösung des Problems. Hast du einen Tipp, wie ich die Installation „for dummies“ Schritt per Schritt irgendwo nachlesen kann?

  3. wb 2.8 / theme Liquid nach Installation werden Umlaute im Mainmenü falsch angezeigt. justieren im Modulbackend (utf8 usw) brachte keinen Erfolg. need help

    • Hallo Kai, Ferndiagnosen sind immer total schwierig. Ich kenne das Theme „Liquid“ nicht und kann daher keine Aussage diesbezüglich treffen. Falls Du Firefox benutzt, schau doch mal im Menü unter „Ansicht“ –> „Zeichenkodierung“ nach, als was die Seite auf dem Bildschirm ankommt. Idealerweise sollte dort „UTF-8“ angekreuzt sein – falls dies nicht der Fall ist oder die Umlaute dennoch falsch angezeigt werden, wechsle mal manuell die Kodierung und schaue, welche die Richtige wäre. Wenn der Fehler erst seit der Installation des Themes auftritt, vermute ich dort die Fehlerursache … eine URL zu Deiner Seite wäre hilfreich. Beste Grüße André

  4. Hallo und danke für das hilfreiche Module. Ich würde gerne statt meiner gesamten Tweets eine Hashtag Liste einbinden (also thematisch, nicht auf meinen Account beschränkt). Ist das technisch zu lösen? Hab das auch über einen Newsfeed versucht, der mag aber keine atom-feeds.

    • Hallo Marcus, für Deinen Einsatzwunsch ist WB Tweets in der derzeitigen Version leider nicht geeignet. Das Website Baker Modul basiert auf Simplepie, einem Parser für Atom- und RSS-Feeds – sicher kann man sich daraus etwas „zurecht schrauben“. Es gibt allerdings auch schon fertige Twitterwalls, welche die von Dir gewünschte Funktionalität mitbringen: z.B. Tweetwall von Basicblogger (http://bit.ly/TaSQU) und die Twitterwall von sprain.ch (http://bit.ly/20wfwn) So etwas wäre in diesem Fall wahrscheinlich die bessere Wahl.

  5. Hi, tolles Modul… aber wie bekommt man es hin, dass die Links in einem neuen Fenster geöffnet werden – ich möchte ja, dass die Leute auch auf meiner Seite bleiben.. Im Forum gab´s dazu einen Hinweis, aber der funktioniert bei mir nicht (Änderungen getestet mit Mozilla und IE), hast du eine Idee, in welcher Datei man da was ändern müsste…? Grüße Petra

    • Ich hatte diese Funktion bewusst nicht eingebaut, da das target-Attribut nicht Bestandteil des XHTML-Standards (strict) ist. Zudem gilt das Öffnen von Links in neuen Fenstern als „schlechter Stil“, da der Besucher damit gewissermaßen bevormundet wird. In HTML5 gibt es das Attribut wohl aber wieder. eMail mit Anleitung ist unterwegs zu Dir.

  6. Hallo, tolle erklärung für das Modul. Jetzt kommt aber eine Frage von mir. Wie kann ich es anstellen, das der Inhalt des Modules auch auf den anderen Seiten erscheint? Ich bin leider noch nicht so gut in diesen Sachen, aus diesem Grund wäre es schön, wenn du es für „dummies“ erklären könntest. vielen Dank

    • Hallo Nina, vielen Dank für das Lob zum Artikel! Leider ist im WB-Tweets-Modul kein einfacher Weg vorgesehen, die Tweets auf jeder (!) Seite auszugeben. Wenn Du die Darstellung der Tweets fest im Template verankern möchtest, so dass das „Gezwitscher“ überall z.B. in einer Randspalte angezeigt wird, ist dieses Modul nicht die richtige Lösung. Auch wenn man das sicher irgendwie „hinfrickeln“ könnte, ist das nicht empfehlenswert. Irgendwann werde ich das Modul vielleicht um eine entsprechende Funktion erweitern, im Moment fehlt mir dazu leider die Zeit. Als (vergleichsweise) einfache Lösung möchte ich Dir das „jQuery plugin for Twitter“ (http://coda.co.za/blog/2008/10/26/jquery-plugin-for-twitter) vorschlagen. jQuery ist ein Javascript-Framework welches in WebsiteBaker ab Version 2.8 standardmäßig mit an Bord ist. Das erwähnte Plugin hängt sich an dieses Framework und lädt die Tweets von Twitter. Ich selber habe dieses Plugin noch nicht verwendet – aber die Beschreibung liesst sich sehr gut. Mit etwas Kenntnissen in HTML/CSS sollte das mit geringen Aufwand einzubauen sein. Sorry, dass ich Dir hier keine erfreulichere Antwort geben kann – ich hoffe aber, dass Dir diese eMail dennoch etwas weiter hilft! Beste Grüße André

  7. Hallo Sven, das Modul funktioniert nur mit dem RSS-Feed der eigenen Timeline und leider nicht mit Favoriten, Listen und gespeicherten Suchen. Auch wenn Twitter für alle möglichen Unteranwendungen RSS-Feeds bereitstellt, unterscheiden sich diese jedoch in der internen Syntax. Die URL des eigenen Timeline-Feeds sieht in meinem Fall z.B. so aus: http://twitter.com/statuses/user_timeline/17847357.rss (kannst Du ja testweise mal im Modul eintragen) Die URL findest Du auf Deiner Profilseite (Twitter.com/DeinUsername) hinter dem Link unter der Liste der Leute denen Du folgst.

  8. Thank you for this very handy module! I was looking for it in AMASP, and luckily someone had built it: you. So thanks for your efforts and sharing!

    • Hi Jurgen! Thank you for your note! I haven’t noticed the changes on twitter until your comment. The syntax of the RSS URL is the same as before but the feed isn’t announced by the HTML document anymore. Installed an set up versions of the WB Tweets module will work without any noticable errors but new users have to use the mentioned tool for retrieving theire RSS URL. Again: Thanks a lot.

  9. Hello, First of all, Great module. I have only one problem. Hastags en date links are working fine, but it seems that links in the tweet itself (like: http://t.co/justatest ) aren’t recognized as a link nor translated to a Hyperlink. How can I fix this problem. Kind regards

  10. WB Tweets funktioniert echt super auf textpressi.de – genau danach habe ich gesucht! Vielen Dank! Der Link zur softwarehacks . net funktioniert leider nicht. Aber ich habe einfach in beide Felder („Twitter Name“ und „RSS-Feed“) meinen Twitter Namen „textpressi“ anstelle der Platzhalter eingegen – und es funzt tadellos. Im Quellcode von Twitter habe ich tatsächlich keinen Eintrag „RSS-Feed“ gefunden. Aber da es einfach mit dem Namen funktioniert, ist das kein Problem.

    • Hallo Alexander, vielen Dank für das Lob und den Hinweis in Sachen softwarehacks.net. Ich habe den Artikel eben aktualisiert und einen neuen Link zur Beschreibung ergänzt. Dass das Modul bei Dir auch ohne Angabe einer Feed-URL gültige Einträge liefert ist äußerst merkwürdig – aber Hauptsache es funktioniert ;-)

Schreibe einen Kommentar