Unser Link ist ziemlich lang. Da wir pro Tweet nur 140 Zeichen zur Verfügung haben, wollen wir den wichtigen Platz natürlich nicht mit dem langen Link verschwenden. Über HTTP-Redirects gibts es die Möglichkeit einen sogenannten URL-Shortener zu benutzen. Beispiele sind tinyurl und bit.ly. Diese kürzen unseren langen Link auf eine kurze aber gültige Adresse zusammen, die auf unsere “richtige” Adresse weiterleitet. Zum Beispiel leitet http://bit.ly/aIMluC auf diesen Artikel um. Das ganze hat natürlich Vor- und Nachteile. Zum einen ist der Dienst kostenlos, zum Anderen sammelt bit.ly natürlich Daten darüber, was im Internet wann und wie oft angeklickt wird. Natürlich kann man sich auch einen eigenen Dienst für Kurz-URLs einrichten. In meinem Beispiel wird j.mp verwendet, weil das jedem zur Verfügung steht und kürzer geht es kaum noch.

  1. Wir legen uns also zuerst einen kostenlosen j.mp/bit.ly Account an. Benutzername und Passwort solltet ihr euch merken (können). Über den Account kann man hinterher sehen, wann welcher unserer Links und wie häufig angeklickt wurde. Für die weitere Programmierung ist der Benutzername und der API_KEY wichtig, den man in seinem Profil abrufen kann.
  2. Dann laden wir die bitly-Klasse von Ruslanas Balčiūnas runter und kopieren sie in den selben Ordner wie magpierrs und unser twitterbot.php Skript. Auch hier müssen wir kein Rad neu erfinden.
<?php
require_once('bitly/lib/bitly.class.php');
define( "LOGIN", "bitlyaccount" );
define( "API_KEY", "R_f3c2a6c1a2e1da645529a59137e3hfa9x" );

$bitly = new Bitly( LOGIN, API_KEY );
?>

Dieser Code initialisiert unser $bitly Objekt und wir können es anschließend benutzen um es mit langen URLs zu füttern. Da Bit.ly und j.mp den gleichen Code und die gleiche Plattform benutzen, können wir das Ergebnis nach j.mp umbiegen um 2 weitere Zeichen einzusparen.

<?php

$hash = $bitly->getHash( $link );
$jmp = "http://j.mp/".$hash;

?>

Fertig. Wir haben jetzt alles, was wir in erster Linie brauchen um unsere Nachricht zu bauen. Wir haben die Überschrift, eine Zusammenfassung aus der wir zitieren könnten und einen kurzen Link, damit unser Follower direkt die Möglichkeit hat, zum Artikel zu gelangen.

Allesblog#bit.ly#PHP#RSS#Twitter#yourls

Nachdem wir uns (ich mir) unseren eigenen Kurz-URL-Dienst eingerichtet haben, habe ich mich damit beschäftigt, wie ich diesen in mein tägliches Leben am einfachsten einbauen kann. Twitter für iPhone, das auf Tweetie 2 basiert, bietet die Funktion einen “Custom URL Shortener” zu konfigurieren. (Accounts > Settings > Services > URL Shortening > Custom…) In das freie Feld wird dann folgende Zeichenkette eingetragen:

http://HOST/yourls-api.php?action=shorturl&signature=TOKEN&format=simple&url=%@

 
Die Werte HOST und TOKEN müssen natürlich durch die passenden eigenen Werte ersetzt werden.

iTunes

  • Twitter für iPhone (kostenlos, AppStore)
Allesblog#3n2.de#iPhone#Twitter#yourls

Ich habe meinen Dienst privat konfiguriert, weil nur ich diesen Dienst benutzen möchte. (Rechtslage, Ressourcen usw.) Yourls bietet einem angenehmerweise die Token-Authentifizierung an, so dass ich nicht in jedem Script oder Modul meinen Benutzernamen und mein Passwort in Klartext speichern muss. Eine einfach Funktion für PHP könnte so aussen:

define("TOKEN", "32ba5634721");
define("HOST", "3n2.de");

function shorten($url) {
  $curl = curl_init( "http://". HOST ."/yourls-api.php?signature=". TOKEN . "&action=shorturl&url=". urlencode(trim($url)) . "&format=json" );
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  $retval = json_decode(curl_exec( $curl ));
  curl_close( $curl );

  if (isset($retval->shorturl)) {
    return $retval->shorturl;
  } else {
    return $url;
  }
}

Die Funktion liefert im Erfolgsfall die kurze URL als String zurück. Konnte die Anfrage nicht verarbeitet werden, so erhält man den ursprünglichen String-Inhalt als Rückgabewert.

Allesblog#3n2.de#PHP#yourls

Michael: Eigene Kurz-URLs

Wenn das “böse böse” Internet mal den favorisierten URL-Kürzer abschaltet oder er aus einem anderen Grund nicht mehr erreichbar ist, dann funktioniert quasi der komplette Rückkanal über z.B. Twitter oder bequemes Facebook nicht mehr, weil dann einfach mal Fantastilliarden an Links ins Nirwana zeigen. Es gibt nur ein einzig wahres alternatives Szenario: selber machen.

Aber da geht schon los. Der oberste Zweck eines Kurz-URL-Dienstes ist es ja eine möglichst kurze URL zu erzeugen. Alles was länger als 3 Buchstaben + Top-Level-Domain ist, kann man ja nicht ernsthaft als kurz bezeichnen. Das nächste Problem ist, dass die “besten” Domains die z.B. auf .DE enden einfach mal schon vergeben sind. Aber so leicht wollte ich nicht schon am Anfang aufgeben.

Wer mich kennt, der weiß, dass es in solchen Sachen einfach mal schnell gehen muss, langsam können andere auch. Da bleibt jetzt nicht wahnsinnig viel Zeit für kreatives.
Trotzdem hing ich stundenlang vor dem DeNIC Whois Dialog und erhielt hundertemal die Nachricht, dass die eingegebene “3-Buchstaben-Kombination”.de bereits vergeben sei. Eine versuchte Google Suche war eher demotivierend aber ich wollte mich ja nicht unterkriegen lassen.

Und dann, mit dem ersten Ergebnis, dass nicht völlig balla balla war, dem Provider des Vertrauens eine Mail geschickt, schon war Teil 1 abgehakt. (Unglaublich welche Anstrengung man unternehmen muss, wenn man sich nicht mit y5l.de zufrieden geben möchte…)

Teil 2 war schon ziemlich weit ausgereift. Apache eben auf die neue Domain hingewiesen, MySQL eine neue Datenbank entlockt und den Rest sollte Yourls richten. Die Konfiguration ist ein Kinderspiel… Aaaaber, jetzt muss ich ja noch der ganzen Armada an Tools und Scripts mitteilen, dass sie doch bitte nicht mehr bei bit.ly anklopfen soll…

Sofern ich das Script selbst geschrieben habe, ist das kein Problem und viele Programme bieten auch Custom Funktionen für die URL-Kürzung an aber was mache ich mit denen, die das nicht tun? Ich bin mir sicher, dafür fällt mir auch noch eine Lösung ein. Mehr also demnächst.

Allesblog#3n2.de#bit.ly#j.mp#yourls