Artikel vom 18. August 2009
Bit.ly: URLs kodieren und auflösen ohne Authentifizierung
Überzeugende Vorteile der URL-Shortener liegen auf der Hand: Tagtäglich leisten Services wie Bit.ly Hilfe beim Kürzen so manch monströser Internet-Adressen. Über die frei verfügbaren APIs der Dienste sorgen Drittanbieter – diverse Twitter-Tools dienen hier als Beispiel – für unermüdliche Nutzung der “Kürzerer”. Der Artikel zeigt, wie beliebige URLs mithilfe von Bit.ly gekürzt und “entschlüsselt” werden können, ohne die notwendige Authentifizierung durchzuführen.
API-Kommunikation nur mit Verifizierung
Ein geduldiger Blick in die API-Dokumentation von Bit.ly verrät, wie die Umwandlung der Internet-Adressen in beide Richtungen vonstatten geht: Eine für API-Aufrufe vorgesehene, abhängig vom Vorhaben des Entwicklers gestaltete Bit.ly-URL wird mit entsprechenden Parametern aufgerufen. Der Haken dabei: Der Name und der API-Key des betroffenen Bit.ly-Accounts müssen ebenfalls als Argumente mitgeschickt werden.

Konvertierung in gegenseitige Richtungen
Die erwähnte Methode kommt erfolgreich in der Bit.ly-Erweiterung für Dropzone zum Einsatz: Einmalig hinterlässt der Anwender dort seine Zugangsdaten, die für die Verifizierung des Bit.ly-Accounts benötigt werden. So erhält das Programm die Berechtigung mit der entfernten Schnittstelle des Shorteners zu kommunizieren.
Je nach Anwendungsfall und Umgebung ist es jedoch nicht immer möglich, den Nutzer nach entsprechenden Zugangsdaten zu fragen, um mit Adressen letztendlich jonglieren zu können. Der Entwickler könnte tricksen und Daten seines Test-Accounts als Übergabewerte im Skript hinterlassen und abschliessend senden. Doch das wäre nicht im Sinne des Erfinders. Idealerweise verzichtet man auf Techniken dieser Art besonders in den Anwendungen mit offenem Code, um Missbrauch des Accounts zu vermeiden.
Kürzen und dechiffrieren ohne Anmeldung
Nachfolgend werden “Hin-und-Zurück”-Wege für Konvertierungen der URLs ohne der Nutzung von Account-Daten aufgezeigt. Im ersten Beispiel wird die alte, nicht dokumentierte API von Bit.ly genutzt, um eine “LongURL” in den smarten Pendant umzuwandeln. Den Rückwärtsgang schaltet eine selbstkreierte cURL-Funktion, die der Bit.ly-Weiterleitung auf simple Weise folgt und den geforderten Redirect in Form einer “echten” Internet-Adresse “rausfischt”.
/shorten mit Bit.ly: Lange URL hin, Bit.ly-URL zurück
<?php echo http://bit.ly/api?url=http://www.wpSEO.de ?>
/expand mit Bit.ly: Bit.ly-URL hin, Original zurück
<?php
if (function_exists('curl_init')) {
/* Verbindung herstellen */
$ch = curl_init('http://bit.ly/wpSEO');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
/* Ausgabe auslesen */
preg_match('/Location: (.*?)\n/', $output, $matches);
/* Redirect-URL */
echo (string) $matches[1];
}
?>
Hinweis
Aus Performance-Gründen ist die Adressenkonvertierung über die Passwort-geschützte API der oben vorgestellten Lösung vorzuziehen, da das gewünschte Resultat mit nur einem Request verfügbar wird.
Nachgefragt
Kennt ihr andere Wege der URL-Konvertierung, ohne die Authentifizierung zu starten? Schon mal mit der API von Bit.ly gearbeitet? Die obere Prozedur fand in meinem Tutorial Twitter-Link mit Caching-Funktion ebenfalls Verwendung.
[Der Autor] Sergej Müller ist enthusiastischer Software Engineer mit Schwerpunkten Webentwicklung und WordPress. Seit 2007 programmiert und vertreibt er wpSEO, das weltberühmte und patentierte SEO-Plugin für WordPress-Blogs.
2 Verlinkungen auf den Artikel
› Den Flash-Uploader von Wordpress deaktivieren, die Bit.ly-API un [...]
› Tweets2Delicious: Tweets automatisiert in Delicious sichern - Tw [...]