Diese Seite
... wurde zuletzt überarbeitet am
03.02.2010 - 20:55
... twittern
Außerhalb von minus78
Meine andere Website
Mein LiebLink
Twitter
Auto-Retweet-Bot
Zuerst sollten wir uns über die Frage "Was soll eigentlich retweetet werden?" Gedanken machen.
Einfache Regeln sind dabei:
- - Niemand mag Spam. Weder die User von twitter, noch twitter als Plattform
- - Soll der Account ein Thema retweeten? Events, Sportereignisse, Thema?
Steht unser Thema des Auto-Retweet-Bots fest, nutzen wir die twitter-interne Suchfunktion
Da der Bot später mittels des Feeds unserer Suche konfiguriert wird, brauchen wir die URL zu dem RSS-Feed.
Dieses geschieht über den Button "RSS Feed for this query".
Diese URL kopieren wir zwecks Weiterverarbeitung.
Da twitter es unterbindet interne RSS-Feeds einzuspeisen, müssen wir den Weg über eine Pipe gehen. Der beste Dienst dafür
ist wohl
YAHOO!-Pipes.
Hier erstellen wir einfach eine neue Pipe:
Links finden wir eine Menüleiste vor, die uns das Leben per vordefinierter Elemente vereinfacht. Diese Elemente können
ganz einfach per Drag & Drop in das rechte Feld gezogen werden. Da wir den RSS-Feed unserer Suche ausgeben wollen,
ziehen wir das Element "Fetch Feed" (Menüpunkt "Sources") in unser Pipe-Feld.
Anschließend kopieren wir die URL, die wir von twitter als RSS-Feed unserer Suche erhalten haben in das Feld.
Sollen mehrere Feeds eingespeist werden, können wir hier auch mittels Klick auf das "+" mehrere Feeds einfügen.
Ich habe in diesem Falle "Kann mir jemand sagen" und "Kann mir jemand helfen" eingespeist (s. links).
Eine Vorschau der ausgehenden Ergebnisse finden wir im Fuße der Seite (s. rechts).
Da wir aber aufgrund von Redundanz keine doppelten Inhalte ausgeben wollen, setzen wir anschließend einen Filter ein,
der das Retweeten von RT´s unterbinden soll. Das Element "Filter" befindet sich unter dem Menüpunkt "Operators" (s. links).
Ein Blick auf die XML der Twittersuche verrät uns, dass ein Post als "title" definiert wird.
Unter Filter geben wir nun ein, dass Posts, in denen "RT" steht, nicht gepostet werden sollen (s. rechts)
Für die Ausgabe der Tweets benutzen wir eine Schleife, die einen String-Builder enthält. Diese benötigen wir,
um nicht nur den Tweet, sondern auch den Absender des Tweets zu posten. Ein String-Builder ist also eine Methode,
die einem String (für alle Nicht-Programmierer: Ein String ist eine Zeichenfolge) einen anderen
String anhängt.
Hier teilen wir mit, dass wir nicht nur den Post ("item.title"), sondern auch die URL des Absenders benötigen ("item.author.uri").
Da dieses für jeden der Tweets geschehen soll, ist das Ganze wie oben beschrieben, in einer Schleife platziert.
Die Abbruchbedingung lautet wie folgt: "For each item in input feed" - Solange es Elemente im eingelesenen Feed gibt,
solange sollen dem "item.title" die "item.title.uri" angehängt werden.
Die URL eines Twitterusers ist im Format
http://twitter.com/minus78. Das ist ziemlich lang, besonders, wenn man bedenkt,
dass der Platz für Tweets mit 140 Zeichen ziemlich begrenzt ist. Daher werden wir ein Regex verwenden.
Regex bedeutet "Regular Expressions" und ist eine Methode, mit der man Strings umwandeln kann. Hier geht das ganz einfach, denn
hier können wir wieder mittels Drag & Drop und grafischer Oberfläche arbeiten. Das Element "Regex" finden wir unter
dem Menüpunkt "Operators":
Da die URL des Verfassers durch den String Builder nun zum "item.title" gehört, geben wir als Regel hier an,
dass "http://twitter.com/" durch "RT @" ersetzt werden soll:
Nun verbinden wir alle Elemente in der Reihenfolge "Fetch Feed" -> Filter -> Loop -> Regex, was in Etwa so aussehen sollte wie auf
nachfolgendem Screenshot:
Wir speichern unsere Pipe nun und holen uns anschließend die URL des RSS-Feed dieser Pipes:
Der Hauptteil ist somit getan. Nun müssen wir unseren Feed nun nur noch in twitter einspeisen. Dafür gibt es verschiedene
Anbieter. Ich habe in diesem Fall
Twitterfeed benutzt.
Hier habe die URL zu meinem Pipe-Feed als Quell-RSS-Feed angegeben. Desweiteren können hier auch Abstände, in denen der Feed eingelesen
werden soll oder die Anzahl der auszugebenen Tweets eingegeben werden.
Den Account, den ich dafür benutzt habe ist dieser:
KannMirJemandSagen
zurück