Twitter für die Shell – Teil 1

Endlich wird hier wieder programmiert! :-) Auch wenn ich gar kein Twitter-Benutzer bin, habe ich mir den Kram mal näher angeschaut. Viel zu sehen gibt es bei dem Laden ja auch gar nicht. Man schreibt seine „Tweets“ in seinen „Kanal“ oder antwortet auf Beiträge von anderen. Was mich viel mehr an der Sache interessiert sind Marketingaspekte, vor allem in Verbindung mit der Twitter-API. Für meinen Favoriten PHP gibt es auch schon diverse API-Clients.

Kurz vorweg: Hier habe ich einen weiteren Artikel geschrieben, der beschreibt, wie man mit kleinen Linuxprogrammen (cURL oder wget) eine Meldung an Twitter schicken kann – die hier beschriebene Lösung funktioniert prima und ist im Kontext meiner Beitragsreihe auch vollkommen in Ordnung, für den Puristen aber zu überdimensioniert – die gehen bitte hier lang: Twitter für die Shell – Teil 0.9

Nun geht’s aber los!!

Für meine ersten Schritte – und einfach, weil ich es cool finde – wollte ich ein Twitter-Command für die Shell haben! Im Stil von

ronald@ronald:~$ twitter "hallo!"

möchte ich Tweets abschicken können! Das ganz war dann auch viel einfacher als ich erwartet hätte. Ich habe vor noch ein oder zwei weitere Teile zu veröffentlichen, um dieses Mini-Skript zu verbessern.

Ich habe mich für die Arc90-Twitter-API entschieden, da sie mir von der Programmierung und vor allem von der Dokumentation her sehr gut gefallen hat.

Erst mal anfangen wie immer! Ich habe meine Datei „twitter.php“ genannt. Eine ordentliche She-Bang-Zeile und die Abfrage des (einzigen) Shell-Arguments $argv[1]. Das sollte nämlich schon vorhanden sein. In $strMessage speichere ich dann die Nachricht.


if (false === isset($argv[1])) {
	die("Need text, dumbass!\n");
}

$strMessage = $argv[1];

Nun wird ein Objekt des Twitter-API-Clients aufgemacht, was dann mit Twitter kommunizieren wird. Als Parameter übergibt man seinen Benutzernamen und sein Passwort.

require_once("Arc90/Service/Twitter.php");

$twitter = new Arc90_Service_Twitter("sincarne", "mein_geheimes_kennwort");

Nun folgt auch schon der letzte Schritt, das Absenden der Nachricht bzw. des „Status“:

$twitter->updateStatus($strMessage);

Das ist in diesem Fall auch schon alles!

Was sollte man noch tun und beachten? Die Arc90-API muss im PHP-Include-Path liegen, das ist natürlich für all diejenigen schlecht, die dort aus „Rechte-Gründen“ nichts reinpacken dürfen. Wenn man aber Zugriff auf die PHP-Funktion „ini_set“ oder „set_include_path“ hat, kann man sich Abhilfe schaffen:

set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . "/arc90");

Dies setzt voraus, dass die Arc90-Twitter-Klassen im Unterverzeichnis „arc90“ des Verzeichnisses liegen, in dem auch das aufzurufenden Skript liegt. „dirname(__FILE__)“ extrahiert das aktuelle Verzeichnis aus dem Dateinamen des aufgerufenen Skripts.

Zur Verdeutlichung; liegt die twitter.php im Verzeichnis „/home/ronald/shell/“, so würde o.g. Aufruf folgenden Include-Path dynamisch erzeugen:


.:/usr/share/php:/usr/share/pear:/home/ronald/shell/arc90

Danach sollten die require-Anweisungen auf die Arc90-Klassen auch ihr Ziel finden.

Nun möchte ich aber nicht immer „twitter.php ‚hallo ballo!'“ aufrufen, sondern einfach nur mit „twitter ‚hallo ballo!'“ meinen Unsinn in die Welt pusten können. Das erreiche ich gaaanz einfach durch:


sudo ln -s /home/ronald/shell/twitter.php /usr/local/bin/twitter
sudo chmod +x /usr/local/bin/twitter

Danach heißt es auch schon: ABFAHRT! ;-)

Wer mich in Zukunft beim Twittern verfolgen will (obwohl ich nicht glaube, dass ich das viel tun werde), der kann das hier tun: http://twitter.com/sincarne. Viel Spaß! ;-)

Hier noch mal das ganze Skript:


if (false === isset($argv[1])) {
	die("Need text, dumbass!\n");
}

$strMessage = $argv[1];

require_once("Arc90/Service/Twitter.php");

$twitter = new Arc90_Service_Twitter("sincarne", "mein_geheimes_kennwort");

$twitter->updateStatus($strMessage);

War dieser Artikel hilfreich für Sie?
[Gesamt: 0 Durchschnitt: 0]

3 thoughts on “Twitter für die Shell – Teil 1

  1. […] wieder) gleich den zweiten Schritt vorm ersten gemacht und zum Auftakt meiner Beitragsreihe “Twitter für die Shell” sofort zum PHP-Overkill-Client gegriffen. Dass das Updaten des Status bei Twitter über die […]

  2. […] es in den nächsten Tagen mit meinem “Twitter für die Shell“-Artikel weitergeht, kommt hier noch ein Hinweis auf ein sehr schönes Pidgin-Plugin! Mit […]

  3. Dz sagt:

    Danke für den praktischen Codeschnipsel. Werde ich gleich morgen mal ausprobieren und mich immer über das Backup Informieren lassen ;-)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *