Inicio > Internet, OpenSource, Web 2.0, web mushup > Usando el API de bit.ly con CodeIgniter

Usando el API de bit.ly con CodeIgniter

Como habrán notado soy un fanático de CodeIgniter, un framework ligero, fácil de aprender, seguro y flexible que permite el desarrollo rápido de aplicacione web usando PHP. Esa es la razón por la cual lo uso para implementar muchas de las ideas que expono a lo largo del presente blog.

Pero, la razón de éste mini-tutorial de cómo usar el API de bit.ly, que es un servicio de redución de URL, es justamente por que he visto que Mashable, ahora muestra un numerito sobre el botón para hacer buzz de sus posts. Estuve leyendo la documentación del API de Google Buzz, con la clara intención de duplicar dicha funcionalidad en mi blog y lamentablemente encontré que no es posible encontrar el número de "buzzeadas" que un determinado website ha recibido. Al menos por el momento esa información no es accesible a través del API de Buzz. Entonces, ¿cómo han resuelto el problema la gente de Mashable?, acaso tienen un trato secreto con Google para usar funciones no documentadas que sólo han sido reveladas a ellos, a cambio de buena prensa. Pues la respuesta es menos paranoica. y ciertamente más propensa a errores. Mashable no está contando el número de veces que un artículo ha sido compartido en buzz, sino el número de clicks sobre un link de bit.ly. Una solución simple, aunque de cuestionable eficacia.

Bueno, ahora que ya sabemos el por qué, veamos el cómo.

Para poder usar el API de bit.ly dentro de CodeIgniter debemos de descargar la librería bitly-api-library-codeigniter, que está alojada dentro de los repositorios de proyectos Open Source de Google. Adicionalmente debemos crear una cuenta en bit.ly ya que con ella podremos obtener un API Key, necesaria para usar el API.

Luego de que descompacte el archivo zip que contiene la librería Bitly.php, la debemos colocar en system/application/libraries/,  luego editamos el archivo system/application/config/autoload.php y denemos agregar esta línea:

$autoload[‘libraries’] = array(‘Bitly’);

Ahora ya podemos usar la librería en nuestra aplicación. Supongamos que el nombre de usuario que registró en bit.ly es "usuarioprueba"  y que la clave (key) del API que  obtiene de bit.ly es "R_0da49e0a9118ff35f52f629d2d71bf07", entonces un ejemplo muy sencillo para obtener la estadística de cuantos clicks ha recibido un terminado enlace sería el siguiente:

<?php

class Stat extends Controller {

        function Stat()
        {
                parent::Controller();
        }

        function index()
        {
                $this->bitly->setKey(‘usuarioprueba’,
                                     ‘R_0da49e0a9118ff35f52f629d2d71bf07’);
                $URL = "http://bit.ly/14H1OB&quot;;
                list($protocol, $empty, $bitly, $hash)=split("/", $URL);
                $result   = $this->bitly->stats($hash);
                echo "<PRE>";
                print_r($result);
                echo "</PRE>";
        }
}

?>

Observer que estoy usando la función split de PHP para poder obtener sólo la última parte del URL, que es la que necesita el API para retornarnos la estadística del número de clicks que ha recibido el enlace. El resultado de la ejecución exitosa del código anterior sería este:

Array
(
    [clicks] => 6
    [hash] => 3VpSVv
    [referrers] => Array
        (
            [] => Array
                (
                    [direct] => 6
                )

        )

    [userClicks] => 2
    [userHash] => 14H1OB
    [userReferrers] => Array
        (
            [] => Array
                (
                    [direct] => 1
                )

        )

)

Como podrán observar, el valor que nos interesaría para implementar el contador de buzz es "clicks". Sumando esto a lo que ya he comentado en el post  "Si Mashable puede, ¿por qué yo no?" y un poco de JavaScript sería posible hacer un widget como el que está usando actualmente Mashable.

  1. septiembre 28, 2010 de 4:20 pm

    class Principal extends Controller {

    function Principal()
    {
    parent::Controller();
    $this->load->library(‘Bitly’);
    }

    function index()
    {

    $this->bitly->setKey(‘my user’,’mi key’);
    $URL = “http://bit.ly/14H1OB”;
    list($protocol, $empty, $bitly, $hash)=split(“/”, $URL);
    $result = $this->bitly->stats($hash);
    echo “”;
    print_r($result);
    echo “”;

    }
    }

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: