Crear URL’s cortas con BITLY desde PHP

Muchos son los servicios de acortación de URL’s que están disponibles hoy en día, pero BitLy, uno de los perros viejos en este campo, es uno de los más usados y con un API bastante sencilla de tratar. A continuación os pasaré un tutorial bastante fácil fácil sobre como conseguir acortar URLs desde nuestros scripts PHP.
Lo primero que debemos hacer es registrarnos en la página de Bitly para poder conseguir nuestro clave API, un token que nos servirá para poder acceder al servicio API de Bitly con nuestra cuenta. Para ello bastará con acceder, una vez registrados y logueados a Your API Key en Bitly.

Una vez tengamos nuestra clave API podemos pasar directamente a ver la función de PHP que nos permitirá acortar las URLs de una forma muy sencilla.
[code lang="PHP"]
function acortar_url_bitly($url,$usuario,$clave_api,$formato = 'xml',$version = '2.0.1')
{
//Cronstruimos el URI con el formato y los datos neceasrios
$bitly = 'http://api.bit.ly/shorten?version='.$version.
'&longUrl='.urlencode($url).'&login='.$usuario.'&apiKey='.$clave_api.'&format='.$formato;
//Almacenamos la respuesta en $respuesta
$respuesta = file_get_contents($bitly);
//Y la tratamos según el tipo de formato pedido para la respuesta
if(strtolower($formato) == 'json')
{
$json = @json_decode($respuesta,true);
return $json['results'][$url]['shortUrl'];
}
else //xml
{
$xml = simplexml_load_string($respuesta);
return 'http://bit.ly/'.$xml->results->nodeKeyVal->hash;
}
}
[/code]
Básicamente lo que hacemos es construir primeramente la URI con los cuatro parámetros básicos que Bitly necesita para devolvernos la URL acortada: el nombre de usuario con el que nos hemos regsitrado, la clave API que conseguioms de la página Your API Key en Bitly, el formato en que queremos obtener la respuesta, bien en notación jSON o en XML y por último la versión de la API de Bitly a usar; actualmente están en la 3.0 pero para nuestros propósitos, lo dejaremos así y no hará falta modificarlo.
Luego almacenamos en una variable la respuesta a través de la función file_get_contents() de PHP y posteriormente, tratamos la respuesta en función del tipo de formato elegido, devolviendo finalmente la URL acortada.
Es bastante sencilla y la API de Bitly da para mucho más, como conrolar los errores de petición con Status Codes, utilizar métodos callback y mucho más que tú mismo puedes aventurarte a investigar en la documentación que ellos mismos ponen en su web.

Truco QRCode

Podemos obtener una imagen con un QR Code de nuestra URL acortada simplemente añadiendo .qrcode al final. Por ejemplo, y usando la función que hemos creado, podríamos mostar el QRCode en un tag de imagen y a su vez enlazar a la web usando un anchor tal que así:
[code lang="PHP"]
< ?php

//Supongamos que queremos acortar la URL http://www.17pulgadas.com
$usuario_bitly = 'tonijota';
$api_key = '019230192301290312'; //Ésta no es válida
$url_a_acortar = 'http://www.17pulgadas.com';
$formato = 'json'; //para variar

//Hacemos la llamada a la función y obtenemos la URL corta.
$url_acortada = acortar_url_bitly($url_a_acortar, $usuario_bitly, $api_key, $formato);

//Le añadimos a la URL corta el .qrcode al final para obtener la imagen del código
$url_acortada_con_qr = $url_acortada.'.qrcode';

//Y escupimos el html
echo <<

17pulgadas QR Code< /a>

EOT;

?>
[/code]

El código es altamente mejorable, y no contemplar ningún tipo de error puede que sea eso mismo, un gran error, así que sería aconsejable que si lo implementas en algún tipo de aplicación controles los estados de respuesta de las peticiones que hagas.

Cualquier duda, consulta o correción en los comentarios será bien recibida ;)