Für das EduCamp 2010 wird auf vielen Baustellen simultan geplant, geschrieben und gewerkelt. Die Vorbereitungen gestalten sich sehr spannend. Weil die Planung eines BarCamps für uns alle eine neue Erfahrung ist, aber möglicherweise interessierte Leser von unseren Erfahrungen profitieren können, haben wir beschlossen, hin und wieder auch kleinteiligere Arbeitsschritte zu kommunizieren.¬†Dieser Artikel berichtet von einem aktuellen und sehr speziellen Ausschnitt der Vorbereitungen, konkret von einer Frage: Wie baue ich einen Twitter-Bot, der automatisiert nach bestimmten Hashtags sucht (in unserem Falle naheliegender Weise das offizielle Hashtag für unser EduCamp,#ec10hh)? Insofern gibt dieser Beitrag nicht nur einen Einblick in einen Aspekt unserer Vorbereitungen, sondern bietet insbesondere auch ein Tutorial für interessierte Bot-Bastler.
Als ein Kanal (unter vielen) ist im *mms der Mikrobloggingdienst Twitter kaum noch wegzudenken. ((eine Übersicht über die Accounts der Planerinnen und Planer findet sich auf der Ansprechpartner-Seite, eine Verzeichnis der Twitterati der Universität Hamburg in der gleichnamigen Twitter-Group.)) Der Gedanke, einen eigenen Account für das EduCamp einzurichten, der Abonennten mit aktuellen Neuigkeiten zum EduCamp versorgt, lag dementsprechend nahe. Wir entschieden uns nach Problemen mit out-of-the-box-Lösungen dafür, unseren Bot ((= Ein mehr oder weniger simples Computerprogramm, das automatisiert spezifischen Aufgaben nachgeht. Vergleich dazu den entsprechenden Artikel in der Wikipedia.)) selbstständig aufzusetzen. Genau das ist mit der Webapplikation „Yahoo Pipes“ schnell und einfach zu bewerkstelligen.
1. Einen RSS-Feed aus der Twittersuche erstellen
Wir beginnen damit, den Input für unseren zukünftigen Bot zu importieren. In die Twitter-Suchmaske ((erreichbar unter http://search.twitter.com/)) wird das Schlagwort eingeben, auf das der Bot später mit einem „Re-Tweet“ (gewissermaßen mit einem Twitter-Zitat unter Angabe des ursprünglichen Autoren) reagieren soll: In unserem Fall handelt es sich um das offizielle Kürzel (bei Twitter „Hashtag“ genannt) unseres EduCamps, „ec10hh“. Die Suchmaschine listet daraufhin die letzten Tweets auf, in denen der angegebene Suchbegriff vorkommt. Von hier aus kann direkt ein sich laufend aktualisierender RSS-Feed der Suchergebnisse gewonnen werden (vgl. den Pfeil in nachstehendem Screenshot):
Abb. 1: Twitter-Suche und der Feed für die Anfrage.
2. Eine Pipeline legen – Yahoo Pipes.
Auf der Seite des Mashup-Tools „Yahoo Pipes“ wird nach der Registrierung ein neues Projekt angelegt („Create a pipe“). Als Input dient dabei der soeben gewonnene RSS-Feed der Twitter-Suche. Dazu wird unter „Sources“ die Option „Fetch Feed“ selektiert und per drag & drop in das Hauptfenster gezogen und in das neue Fenster die Adresse des Feeds eingefügt.
Abb. 2: Import des Feeds in Pipes.
Im Anschluss an den Import sind noch einige kleinere Modifikationen nötig, die über zusätzliche Fenster (die mit der Quelle verbunden werden) zu editieren sind: Das Suchergebnis wird durch verschiedene Filter geschickt, die verhindern, dass sich unser Bot in Zukunft selbst zitiert, weil in jedem Zitat das gesuchte Schlagwort ja auch wieder vorkommt (und somit die Gefahr von unendlichen Zitat-Iterationen besteht, wenn der eigene Retweet wieder ge-retweeted wird und daraufhin wieder ge-retweeted wird – und so weiter, ad infinitum). Weil Retweets mittlerweile mit Hilfe unterschiedlicher Formate gekennzeichnet werden ((klassisch „RT @user“, aber auch „retweeting @user“ oder „via @user“)), berücksichtigen wir alle diese Möglichkeiten in einem Blockade-Filter: Tweets mit den entsprechenden Merkmalen werden so am weiteren passieren unserer Pipe gehindert und somit aussortiert.
Abb. 3: Filteroptionen.
Zuletzt sorgt ein „Regex“-Fenster dafür, dass die Autoren des ursprünglichen Tweets in einheitlicher Weise genannt werden ((In unserem Falle (und weil es sich um schlichte 1:1-Zitate handelt) in der Form „RT @user“)):
Abb. 4: Regex.
Nun wird das Regex-Fenster über eine letzte Leitung mit dem „Pipe Output“ verbunden – unsere Pipeline ist fertig. Der Debugger am unteren Bildrand offenbart uns eine Vorschau der künftigen Bot-Aktivität:
Abb. 5: Die komplette Pipe.
3.  Re-Import nach Twitter.
Der dritte und letzte Schritt übermittelt die bisher gewonnenen Informationen an einen Sender, damit sie in Folge mitgeteilt werden können. Dafür muss der Account des Bots mit dem kontinuierlichen Input unserer automatisierten Twittersuche versorgt werden – das Puzzle will zusammengefügt werden. Das Mittel der Wahl ist wiederum ein RSS-Feed, der nach dem Speichern der Pipe im Dashboard aufgerufen werden kann:
Abb. 6: Export als RSS-Feed.
Nun brauchen wir nur noch einen Dienst, der aus dem (mehr oder minder kontinuierlichen) Datenstrom Tweets erzeugt. Es empfehlen sich Hootsuite oder Twitterfeed – beide Anwendungen erlauben es uns, einen Twitter-Bot über RSS-Input zum automatisierten Zwitschern zu bringen. Hierfür muss der jeweilige Dienst zum Zugriff auf den Account autorisiert und der exportierte RSS-Feed eingefügt werden. Ein Finetuning erlaubt die Einstellung der Intervalle zwischen den Tweets, die Anzahl der maximal zugleich versendeten Nachrichten etc. Beide Anwendungen sind relativ selbsterklärend, so dass wir hier auf weitere Details verzichten können. Wir haben einen einfachen Bot (oder sollte man, um im Bild zu bleiben, nicht eher von „Papageien“ sprechen?)¬†konstruiert, der bei Bedarf um weitere Suchbegriffe und Funktionen erweitert werden kann.
Jetzt bleibt uns, viel Freude beim Ausprobieren und Bot-Basteln zu wünschen. Und auf keinen Fall vergessen, unserem zu folgen: @ec10hh!
3 Antworten
Ein Problem mit den Bots ist, dass Sie ReTweeten. So erscheinen auf TweeterWalls und Timelines die Msgs zwei bis drei Mal.
Das sieht man auch sehr schön an dem Screenshot oben. Ich würde Retweet Bots verzichten, da es zu einem Overflow führt. Mit einer Twitter-Wall und Online-Twitter-Wall hat man auch alles an einer Stelle und die Leute können da nachlesen ohne Verdopplung der Informationen.
Hallo Mo,
ja, stimme Dir zu. Wir haben heute auch darüber gesprochen, ob wir den Bot ausschalten. Aber zunächst wollen wir ihn, um die Infos noch weiter zu verbreiten, die auch andere Leute zum EduCamp in Hamburg twittern, weiter zu verbreitern – auch ohne aktive Suche.
Allerspätestens beim EduCamp selber, wenn dann die Twitterwall für alle Teilnehmer sichtbar ist, schalten wir den Bot aus.
Cool wozu man Yahoo Pipes so alles benutzen kann. Ich hab mir damit auch mal meinen persönlichen E-learning feed zusammengebaut (inklusive Contentfilter der mir bestimmte Sachen rausfiltert die mich nicht interessieren).
Da sieht man wieder wie wichtig es ist den Nutzern Möglichkeiten zu geben Dinge für sich selbst anzupassen und zu bauen.
Werde das Blog mit Interesse weiter verfolgen und freu mich auf HH,
Helge