am 1. März 2010
Am Freitag hatte ich kurz erklärt wie man schönere ShortUrls erstellt, die ohne Fragezeichen auskommen. Diese Lösung hatte ich gewählt, da ich sie für Tweets verwenden wollte und wenn man nun mal nur 140 Zeichen hat, dann sollte man kürzen wo es geht.
Das hat wunderbar bis zum Relaunch geklappt. Mit dem 500. Artikel haben wir auch das topsy Plugin eingeführt, um die Retweets besser zählen zu können (beim alten System hatte wir nur die der letzten 2 Wochen erfasst). Dieses Plugin hatte aber das Problem, dass es unsere /id Links nicht ausgelöst hat und somit keine Statistiken geführt hat, wie viele Retweets es denn jetzt wirklich sind. Ich hatte mich dann darauf entschlossen einen offiziellen URL Shortener zu verwenden und bin bei bit.ly gelandet. Die Schnittstelle war recht einfach und hat sich an Standards gehalten.
Was ich also gemacht habe, ist das pushWP Plugin so aufzubohren, dass es auch gekürzte URLs twittern kann. Natürlich ist die Klasse, die ich dazu geschrieben habe nicht perfekt und die Fehlerbehandlung fehlt auch noch komplett, aber falls sie schon mal jemand verwenden und vielleicht erweitern will, werde ich sie schon mal veröffentlichen.
class pushWP_BitlyUrlShortener
{
private $login;
private $apiKey;
const REST_URL = 'http://api.bit.ly/shorten?version=2.0.1&longUrl=%s&login=%s&apiKey=%s';
public function __construct($login, $apiKey)
{
$this->login = $login;
$this->apiKey = $apiKey;
}
public function getShortUrl($longUrl)
{
$restUrl = sprintf(self::REST_URL, $longUrl, $this->login, $this->apiKey);
$result = json_decode(file_get_contents($restUrl));
$urlResult = $result->results->$longUrl;
return $urlResult->shortUrl;
}
}
Mehr ist es nicht. Ihr müsst euch nur einen API Key holen und schon kann es losgehen. Zumindest reichen die Anforderungen für phphatesme. Die Fehlerbehandlung wird vielleicht einer von euch nachreichen oder ich mache das in einer ruhigen Minute.