Was nützt einem Power-Twitterer der schönste eigene URL-Shortener, wenn der Twitter-Client nur bit.ly oder is.gd anbietet? Sicherlich könnte man immer zwischen Client und Shortener-Website hin- und herwechseln, um die Kurzlinks per Zwischenablage manuell in den Tweet einzukopieren. Hand auf´s Herz - würden Sie das tun? Müssen Sie auch nicht…
Kurzlinkunterstützung in Twitterclients
Die beliebtesten Twitter-Clients dieser Tage sind “Tweetdeck” und “Seesmic Desktop”. Beide basieren auf Adobes AIR-Architektur und werden anwendungsintern via XML konfiguriert. Beide unterstützen eine Anzahl fremdgehosteter URL-Shortener und sind nicht erweiterbar. Da jeder Shortener mit API via XML angesprochen werden kann, stellt sich die Frage nach den Gründen der fehlenden Erweiterbarkeit.
Lassen Sie es mich unumwunden sagen. Es gibt keine, jedenfalls keine vernünftigen.
Es wäre einfach möglich, entweder die Einstellungsdialoge frei zu geben, so dass ein jeder seinen bevorzugten Shortener via API-Call hinterlegen könnte. Kennt man die Aufrufparameter, kann man den Dienst einbinden.
Alternativ könnte man eine Schnittstelle bauen, die über externe XML-Files die Shortener mit ihren jeweiligen API-Calls einbindet. Diese Lösung wäre flexibler, weil Sie die Übergabe weiterer Parameter, wo nötig, erlaubt.
So oder so. Wäre der Wille der Clientprogrammierer da, eine volle Einbindung beliebiger Shortener (mit API) wäre insbesondere unter Verwendung von AIR kein Problem. Völlig problemlos wäre auch die Realisierung einer flexiblen Einbindung unter nativen Softwareclients wie Tweetie.
Warum trotz technischer Trivialität zumeist der geschlossene Weg vorselektierter Dienste beschritten wird, ist Spekulationen zugänglich, die allerdings nicht zielführend wären. Ich beschränke mich daher auf die Darstellung praktikabler Lösungen.
Nicht erweiterbar sind Tweetie, Blu, Seesmic Desktop, Tweetdeck, DestroyTwitter, Twhirl, bDule, Echofon (TwitterFox) und die meisten anderen am Markt befindlichen, dabei weniger bedeutenden Wettbewerber.
Mit einiger Fachkenntnis lassen sich ADA (AIR) und Threeter (C#) erweitern. Der Source Code von ADA kann bei Github, derjenige von Threeter kann bei Codeplex heruntergeladen werden.
Weniger Expertise ist bei den Lösungen erforderlich, die ich im folgenden vorstellen will.
Alternative 1: Twitcher
Twitcher ist ein weiterer Twitter-Desktopclient auf der Basis der AIR-Technologie. Im Gegensatz zu anderen Clients, die sich permanent unter der Nuller Versionsgrenze bewegen, liegt Twitcher bereits in der Version 1.7 vor. Das Changelog beweist, dass hier in der Tat intensiv entwickelt und nicht bloß eine hohe Versionsnummer vorgetäuscht wurde.

Hinsichtlich der Features liefert Twitcher ein ambivalentes Bild. Einerseits glänzt es mit Funktionen wie
- Synchronisation der Tweets über mehrere Installationen des Clients auf unterschiedlichen Rechnern
- Verwaltung mehrere Twitteraccounts und nahtlose Auswahl des Accounts pro Tweet
- Integration einer ganzen Reihe von Fotodiensten
- einem für englischsprachige Nutzung geeigneten “Shrink-Modus”, der Texte von “Tonight I went out for too long” zu “2night I went out 4 2 long” wandelt und so Zeichen spart
- dem Anzeigen der Lang-Links zu Short-URLs in Quicktipps/Tooltipps, egal, welcher Shortener verwendet wird
- der Popup-Anzeige verlinkter Bilder über die gängigen Dienste wie Twitpic, Tweetphoto und anderen
- Tastatur-Shortcuts
- dem absoluten Killerfeature, nämlich der XML-Plugin-Architektur.
Andererseits fehlt es an einer Suchfunktion und an der Möglichkeit, Gruppen einzurichten. Zwei Funktionen, die von vielen Twitter-Usern sicherlich als unabdingbar angesehen werden.
Für das Thema dieses Beitrags ist insbesondere die XML-Plugin-Architektur von Bedeutung. Diese nutzt Twitcher intern bereits komplett für die Einbindung der Short-URL-Dienste via XML. Jeder in Twitcher wählbare URL-Shortener wird über eine äquivalente Datei namens ShortURL-Dienstname.xml eingesteuert.

Beispielsweise sieht die XML-Datei für die Ansteuerung des Dienstes is.gd wie folgt aus:

Sie sehen, dass es lediglich eines Shorteners mit API-Call bedarf, um ihn via XML in Twitcher verfügbar zu machen. Der Aufruf meines Short-URL-Dienstes, der bekanntlich auf Yourls.org basiert, wird über die Datei ShortURL-AKUEFI.xml gesteuert und sieht wie folgt aus:

[Abb.: Gesamtinhalt der ShortURL-AKUEFI.xml]

[Abb.: API-Call in ShortURL-AKUEFI.xml im Detail]
Haben Sie die entsprechende XML-Datei erstellt, legen Sie diese im entsprechenden Verzeichnis ab und verfügen fortan in Twitcher über die Möglichkeit, innerhalb des Desktopclients URLs schnell und unkompliziert mit ihrem eigenen Dienst zu kürzen.

Das Beispiel Twitcher zeigt, wie einfach es auch bei Seesmic oder Tweetdeck gehen könnte, wenn deren Hersteller es wollten.
Alternative 2: Spaz
Spaz ist ein Desktopclient, der ebenfalls auf AIR basiert. Er ist insofern einzigartig, als er auf Flash verzichtet und stattdessen komplett mittels (X)HTML, CSS und Javascript unter Verwendung von Spry und jQuery erstellt wurde. Zudem steht er als Open Source unter einer BSD-Lizenz zur freien Verwendung und Modifikation bereit.
Spaz ist in Sachen optischer Eleganz seinen Wettbewerbern mindestens nicht unterlegen und bietet ebenso die gängigsten Funktionalitäten. Anders als Twitcher kann Spaz auch Identi.ca und StatusNet (vormals laconica) bedienen. Zudem verfügt er im Gegensatz zu Twitcher über eine Suchfunktion.

Hingegen kann Spaz nur einen Account verwalten und verfügt nicht über die Funktionalität, sich über mehrere Installationen zu synchronisieren. Genau wie Twitcher hat auch Spaz keine Gruppenfunktion.
Durch die Freigabe des Source Code und die Tatsache, dass Spaz funktional im Wesentlichen durch Javascript definiert wird, ist der Client natürlich in besonderem Maße für die Integration eigener URL-Shortener geeignet. Dabei ist allerdings eine etwas aufwändigere Vorgehensweise erforderlich.
Im Grunde ist die Sache einfach. Für die Definition der URL-Shortener existiert eine Javascript-Datei namens spaz.shortlink.js.
Beispielsdefinitionsabschnitt in spaz.shortlink.js:

Diese ist natürlich frei erweiterbar. So müsste die Integration meines Yourls-basierten Dienstes wie folgt aussehen:
[Abb.: Codeblock zur Einbindung des Yourls-Shorteners gesamt]

[Abb.: API-Call in spaz.shortlink.js im Detail]
Im Grunde wären Sie nun mit dem Einbau dieses Code-Teils fertig und Spaz sollte Ihren Shortener anbieten. Leider ist es so, dass Sie sich noch mit den Einschränkungen der AIR-Konventionen rumschlagen müssen. Eine einfache Erweiterung der spaz.shortlink.js reicht nämlich nicht, weil AIR Änderungen an Dateien, die zum Installationsumfang gehören, nicht zulässt. Tun Sie es trotzdem, startet Spaz fortan nicht mehr und Sie suchen sich einen Wolf nach dem Fehler.
Daher ist es unumgänglich, aber immerhin aufgrund des Open Source Status von Spaz möglich, Spaz nach den getätigten Änderungen komplett neu aufzubauen, also Ihre Änderungen in das Installationsmodul zu integrieren. Dazu benötigen Sie das AIR SDK (und einen Codeeditor), sowie den Sourcecode von Spaz und diese Anleitung.
Fazit
Insbesondere die Twitcher-Lösung ist höchst praktikabel und für quasi jedermann realisierbar. Spaz bietet etwas mehr Komfort, ist dabei aber auch deutlich schwieriger zu erweitern. Die Hoffnung, auch andere Twitter-Clients werden künftig API-Calls erlauben, ist nicht zuletzt aufgrund des Tr.im-Wakeup-Calls sicherlich berechtigt.
Wer also Twitcher nicht mag oder Spaz zu schwierig zu implementieren findet, könnte mit etwas Geduld auch in seinem Client-Favoriten zukünftig Konfigurationsmöglichkeiten finden, die es bislang nicht gibt. Ich persönlich verwende Twitcher. ™
Hier können Sie die verwendeten Code-Beispiele als ZIP-Archiv herunter laden.
Dieter Petereit
ist diplomierter Absolvent des Studienganges Wirtschaftswissenschaften mit Schwerpunkt Marketing, aber bereits seit 25 Jahren in der IT daheim. Seit der Jahrtausendwende ist er bei verschiedenen Unternehmensberatungen tätig gewesen und hat dort KMU in Fragen crossmedialer Marketingstrategien, sowie hinsichtlich konkreter IT-Projekte betreut. Technische Dokumentationen schreibt er seit Ende der Neunziger am Fließband, so dass der Betrieb verschiedener Blogprojekte seit 2005 nur konsequent ist.




Wer den Client nicht wechseln möchte, kann auch einfach seine lokale HOST-Datei anpassen und alle Anfragen an einen bestimmten Dienst auf die eigene Website umleiten, wo dann der selbstgestrickte Dienst genau so reagiert wie die API des Originals.
Sollte nicht allzu schwer umzusetzen sein, oder?
[...] Bei Dr. Web zeige ich die Integration am Beispiel zweier AIR-Clients >> [...]
Wo kann ich bei Mac OSX einen Urlshorter zu Twitcher hinzufügen?
Weiss das zufällig jemand?
@Tom:
LW:\Applications\coderanger.com\twitcher.app\Contents\Resources\shorturl-definitions
[...] Bei Dr. Web zeige ich die Integration am Beispiel zweier AIR-Clients >> [...]