Bit.ly es un estupendo servicio de acortamiento de URLs que cuenta con el importante respaldo de ser el servicio por defecto en Twitter.
Destaca por su fiabilidad, las URLs tan cortas que genera, y la información que proporcionan sobre una URL dada. Hace poco que Bit.ly actualizó su API a la versión 3.0, así que vamos a mostrarte cómo puedes crear o expandir URLs cortas utilizando Bit.ly.
/* devuelve la URL acortada */
function get_bitly_short_url($url,$login,$appkey,$format='txt') {
$connectURL = 'http://api.bit.ly/v3/shorten?login='.$login.'&apiKey='.$appkey.'&uri='.urlencode($url).'&format='.$format;
return curl_get_result($connectURL);
}
/* devuelve la URL expandida */
function get_bitly_long_url($url,$login,$appkey,$format='txt') {
$connectURL = 'http://api.bit.ly/v3/expand?login='.$login.'&apiKey='.$appkey.'&shortUrl='.urlencode($url).'&format='.$format;
return curl_get_result($connectURL);
}
/* devuelve la URL con varios datos */
function curl_get_result($url) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
/* obtiene la URL corta */
$short_url = get_bitly_short_url('http://www.webmasterio.com/','webmasterio','xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
/* obtiene la URL larga a partir de la corta */
$long_url = get_bitly_long_url($short_url,'webmasterio','xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
Todo lo que hay que hacer es pasarle tu clave de aplicación y login (hay que registrarse para los servicios de la API), la URL larga o corta, y el formato en el que quieres que te devuelva el resultado. Si sólo quieres la URL sin más información, utiliza el formato por defecto TXT. Recuperar la información en formatos XML o JSON te proporcionará muchos más datos sobre la URL.
Fuente: Create Bit.ly Short URLs Using PHP: API Version 3 [david walsh blog]