Aber Twitter ist anders. Twitter erlaubt seit einem Jahr keine HTTP basic authentication mehr, sondern benutzt statt dessen ausschließlich OAuth, ein aufwendiges, mehrstufiges und vergleichsweise kompliziertes Verfahren. Das Problem dabei ist — abgesehen von den illustren und wirklich schwer zu durchschauenden Fallstricken, die das miserabel dokumentierte Twitter-OAuth-API an sich bereithält2 — die Tatsache, daß Twitter einen Schritt der Authentifizierung in den meisten Fällen wohl unumgänglich interaktiv implementiert hat. Während des handshakes mit dem Authentifizierungsserver gelangt man, wohlgemerkt nachdem man dem Programm bereits zwei benutzerbezogene Twitter-Schlüssel übergeben hat, an einen Punkt, an dem man vom Twitter-API eine URL bekommt, die man unverzüglich in einem Browser anzeigen soll. Auf der dann erscheinenden Website befinden sich zwei Buttons, mit denen der Benutzer nun noch der Anwendung, die er gerade gestartet hat, den Zugriff auf seine Twitter-Daten erlauben oder diesen Zugriff abwehren kann. Erlaubt er den Zugriff, registriert Twitter die Anwendung im Account des Benutzers und vergibt Zugriffsschlüssel, die an die Anwendung übermittelt werden. Mit diesen insgesamt vier (!) langen (!) Schlüsseln kann die Anwendung künftig zugreifen.
Was aber nun, wenn die Anwendung keinen Browser starten kann? Oder wenn vielleicht gar keine reale Person davorsitzt, die den Button drücken könnte? Dieser Fall ist schlicht nicht vorgesehen. Es gibt auch keinen anderen Weg, eine Anwendung im Account des Benutzers zu registrieren - nur Entwickler (also Twitter-user, die einen Entwickler-Account haben) können das, offenbar zu Testzwecken. Twitter hat hier ganz einfach eine Tür eingebaut, aber verschlossen und klugerweise den Schlüssel weit weggeworfen.
Ich sagte: in den meisten Fällen. Ein Hintertürchen hat Twitter offengelassen: xAuth. Dieser Teil von OAuth erlaubt ausnahmsweise die Angabe von Benutzername und Paßwort zum Aufbau einer Verbindung. Das Recht, xAuth benutzen zu können, muß aber erst beantragt werden. Eine Antwort lautet beispielsweise:
Unfortunately, we are not granting xAuth for these kinds of purposes. Instead, we recommend that you set up a one-time OAuth ...... den üblichen, oben von mir beschriebenen, interaktiven Weg also. xAuth bekommt man offenbar nur, wenn man wenigstens 1000 Benutzer mitbringt.
Wozu nun das Ganze? — Ich behaupte, der einzige Nutznießer dieser intransparenten und aus Benutzersicht nicht zuletzt auch schlicht idiotischen Kompliziertheit ist Twitter selbst, nämlich derart, daß auf diese Weise sämtliche Zugriffe von Anwendungen eineindeutig und bis ins Kleinste protokollierbar werden. Es läßt sich exakt verfolgen, welcher Benutzer mit welcher Anwendung wie oft zugreift, ob er weitere Anwendungen benutzt usw. Davon natürlich nirgends ein Wort.
Mehr dazu in diesem interessanten Artikel.
1 Es gibt beispielsweise viele Maschinen, Geräte, Meßstationen für Umweltdaten usw., die in regelmäßigen Abständen Statusmeldungen senden, bislang oft per e-mail oder SMS. Aber es ginge eben auch problemlos per HTTP über Twitter.
2 Ich halte mich für einen geübten Programmierer, habe aber etwa die Freizeit eine ganzen Woche (!) gebraucht, um mein Programm zu authentifizieren und die sog. user_timeline (den RSS-feed der Nachrichten) seitenweise abzufragen.







