Mediante ActionScript 3.0 y las APIs de los acortadores de urls (url shortener) como son bit.ly o goo.gl (el oficial de Google) podemos realizar la sencilla tarea de reducir nuestras direcciones webs en los mínimos carácteres posibles.
Pero, ¿qué es un acortador de direcciones? Un acortador de direcciones es un servicio que traduce una dirección de una página web normal en una dirección codificada con un número reducido de carácteres. Esto es debido a que en Twitter sólo podemos utilizar 140 carácteres en cada tweet y para poder compartir urls necesitamos que nos ocupe lo mínimo posible 😉
Hay muchos servicios de este estilo como podéis ver en este otro post: 16 sitios para acortar urls. El más famoso es bit.ly.
Este es un post vamos a acortar una url con ActionScript 3.0 y ver que posibilidades nos dan los acortadores de url que nos permiten incluso obtener estadísticas de estos enlaces breves.
Acotar url con ActionScript 3.0 y bit.ly
Para poder utilizar la API de bit.ly lo primero que tenemos que hacer es obtener una API Key como en todas las APIs web 2.0. Primero te registras en bit.ly y luego solicitas las API Key. Mediante el login y la apikey podremos hacer solicitudes a la API.
En este caso para acortar una url utilizaremos el método shorten
Después tan sólo hay que llamar al método mediante URLLoader pasando por GET los parámetros adecuados: login, longUrl, apiKey, format. Donde tenemos varios formatos: txt (texto plano), XML o JSON. En el ejemplo utilizaremos simplemente el texto plano.
//variables var LOGIN_SHORTENER:String = "TU LOGIN"; var APIKEY_SHORTENER:String = "TU APIKEY"; var FORMAT_SHORTENER:String = "txt"; //xml / json / txt //datos de carga var datos:URLLoader = new URLLoader(); datos.addEventListener(Event.COMPLETE,complete_handler); [...] //expresion regular que nos dice si la url es una url correcta var regex:RegExp = /^http(s)?:\/\/((\d+\.\d+\.\d+\.\d+)|(([\w-]+\.)+([a-z,A-Z][\w-]*)))(:[1-9][0-9]*)?(\/([\w-.\/:%+@&=]+[\w- .\/?:%+@&=]*)?)?(#(.*))?$/i; if(regex.test(url_ti.text)) { //es una url correcta y no es del acortador bit.ly if(url_ti.text.indexOf("bit.ly") == -1) { var url_bitly:URLRequest = new URLRequest("http://api.bitly.com/v3/shorten"); url_bitly.method = URLRequestMethod.GET; var vars:URLVariables = new URLVariables(); vars.longUrl = url_ti.text; //url a enviar vars.login = LOGIN_SHORTENER; vars.apiKey = APIKEY_SHORTENER; vars.format = FORMAT_SHORTENER; url_bitly.data = vars; //hacemos la petición a la url con los parametros por GET datos.load(url_bitly); } [...] function complete_handler(event:Event):void { //al ser el format txt nos devuelve la cadena plana var shortURL:String = String(event.target.data); result_lb.text = shortURL; //donde result_lb es donde mostramos el resultado }
Como curiosidad también hemos añadido la funcionalidad de copiar esa url al portapapeles desde Flash.
function copyclick_handler(event:MouseEvent):void { if(result_lb.text != "") { System.setClipboard(result_lb.text); } }
Si queremos hacer esta labor de acotar una url desde servidor con un lenguaje PHP tenemos un claro ejemplo en el blog de blog.unijimpe.net: Acortar urls con PHP y API bit.ly
Estadísticas en una url acortada
Por otro lado gracias a los acortadores y a sus APIs también podemos conocer las estadísticas de clicks de estas urls acortadas así como desde que fuente (referrer) se ha realizado el click. El método es referrers.
Se le envia la url acortada y devuelve un XML como indica en la documentación oficial:
<?xml version="1.0" encoding="UTF-8"?> <response> <status_code>200</status_code> <data> <short_url>http://bit.ly/hbt0d7</short_url> <global_hash>hDna9J</global_hash> <user_hash>hbt0d7</user_hash> <referrers> <referrer>http://twitter.com/</referrer> <clicks>19</clicks> </referrers> <referrers> <referrer>direct</referrer> <clicks>16</clicks> </referrers> <referrers> <referrer>http://td.partners.bit.ly/</referrer> <clicks>6</clicks> </referrers> <referrers> <referrer>http://twitter.com/eladnts</referrer> <clicks>4</clicks> </referrers> <referrers> <referrer>http://mobile.twitter.com/perex/following</referrer> <clicks>1</clicks> </referrers> <referrers> <referrer>http://www.lostiemposcambian.com/blog/tag/nitsnets/</referrer> <clicks>1</clicks> </referrers> <referrers> <referrer>http://www.lostiemposcambian.com/blog/web-2-0/frameworks-php-symfony-vs-codeigniter-casos-de-exito/</referrer> <clicks>1</clicks> </referrers> </data> <status_txt>OK</status_txt> </response>
En el ejemplo ponemos la url comprimida de la Industrialización en la web y vemos que la fuente desde donde más se ha pinchado ha sido twitter 😉
Montar un propio acortador de urls
Incluso si no quieres depender de un servicio externo para acortar las urls podriamos incluso llegar a crear nuestro propio acortador de urls como se puede apreciar en «Monta tu propio acortador de url»
Yo utilizo http://www.karu.es