Acortar URLs con bit.ly y PHP

Bit.ly es uno de los servicios de acortamiento mas innovadores por que además de acortar el URL brinda estadísticas de accesos y un historial de enlaces acortados. Bit.ly además tiene un API mediante el cual se pueden generar dinámicamente los URLs acortados.

bit.ly

Para una versión actualizada de este artículo pueden leer: Acortar URLs con PHP y API Bit.ly

API del Bit.ly
Este API brinda metodos para acortar y expandir URLs, ver estadisticas y datos del URL. Para mayor información pueden leer API Libraries and Documentation for bit.ly. Para hacer uso de esta API es necesario tener una cuenta la cual es gratuita.

Para acortar un URL se puede utilizar el método shorten, para ello se puede acceder a un URL donde url es el URL que se desea acortar, user es tu nombre de usuario de bit.ly y key es nu API Key:

http://api.bit.ly/shorten?version=2.0.1&longUrl=url&login=user&apiKey=key

Esto nos devolverá el resultado formateado en JSON, en donde tenemos el estado de la solicitud, los datos del URL sin acortar y acortado.

{
    "errorCode": 0, 
    "errorMessage": "", 
    "results": {
        "http://blog.unijimpe.net": {
            "hash": "13dmBF", 
            "shortKeywordUrl": "", 
            "shortUrl": "http://bit.ly/5CcBM", 
            "userHash": "5CcBM"
        }
    }, 
    "statusCode": "OK"
}

Entonces podemos utilizar la librería JSON.php de la cual hemos comentado en JSON con PHP, entonces crearemos una función llamada getShortenURL que recibirá el URL y lo acortará.

require_once("JSON.php");

function getShortURL($url) {
	$user  = "username";
	$akey  = "apikey";
	$path  = "http://api.bit.ly/shorten?version=2.0.1";
	$bitly = $path."&longUrl=".urlencode($url)."&login=".$user."&apiKey=".$akey;	
	$data = file_get_contents($bitly);

	$json = new Services_JSON();
	$obj = $json->decode($data);

	if ($obj->errorCode == 0) {
		return $obj->results->$url->shortUrl;
	} else {
		return false;
	}
}

Finalmente podemos hacer uso de esta función de manera sencilla como podemos ver a continuación:

$longURL = "http://blog.unijimpe.net";
echo "Long: ".$longURL."
"; echo "Short: ".getShortURL($longURL);

Esta función les puede ser útil si desean acortar URLs para luego enviarlas a Twitter o que estén disponibles para dispositivos móviles o enviados por SMS donde hay limitaciones en la cantidad de caracteres utilizados.

[download id=»18″ autop=»false»]

Comentarios Total 4 comentarios

Manuel
Publicado: 21/07/2009 3:28 am

Esto no tiene nada que ver con el post
pero a mas de alguien le pued interesar.

http://chilebandas.com/2009/07/19/como-insertar-el-reproductor-de-myspace-en-mi-sitio/

Si necesitan saber como se hace pueden preguntar

Daniel
Publicado: 04/01/2010 5:00 pm

Hola estoy tratando de implementar este API a un foro en phpbb3 pero la verdad no se por donde comenzar, donde insertar los codigos que mencionas es esta publicacion. Te agradeceria si me ayudaras un poco.

Saludos

Acortar URLs con PHP y API Bit.ly | unijimpe
Publicado: 17/05/2010 12:45 am

[…] detallan en Introducing bit.ly API Version 3. En una anterior oportunidad habíamos comentado como Acortar URLs con bit.ly y PHP pero ahora actualizaremos nuestro código utilizando el nuevo API.Nueva API Version 3 Examinando la […]

Joseph Garcia
Publicado: 18/08/2011 2:29 pm

Bueno tengo una duda..
igual que Daniel, intengo implementarlo pero a un cms que yo programé.

lo que quiero lograr con el api es que parsee con bbcode la url pero esta tambien la convierta..

de la siguiente manera:

url larga

alguna idea?

 

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)