Acortar URLs con PHP y Goo.gl

Goo.gl es el servicio de Google para acortar URLs semejante a Bit.ly que ofrece un API que permite acortar y expandir las URLs de manera sencilla. Además de ello ofrece estadísticas de visitas a nuestras URLs acortadas para una análisis del rendimiento.

Creando un API Key
El proceso completo para hacer uso del API esta explicado en Getting Started – Google URL Shortener API. Donde se explica que para hacer poder acortar las URLs es necesario tener un API Key. Este key es gratuito y para obtenerlo hay que seguir los siguientes pasos.

  • Entra a Google API Console.
  • Crea un nuevo proyecto y activa «URL Shortener API«.
  • Click en el menú «Identity» y en la sección Access Key encontrarás tu key.

Creando la Clase para Goo.gl

De acuerdo a la documentación creamos un clase en PHP con dos métodos shorten para acortar un URL y expand para expandir URLs.

class Googl {
	var $path;
	
	function Googl() {
		$this->path = "https://www.googleapis.com/urlshortener/v1";
	}
	function shorten($url, $key) {
        $ch = curl_init($this->path."/url?key=".$key);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array('longUrl' => $url)));
        
        $rpta = curl_exec($ch);
		$data = json_decode($rpta, true);
        curl_close($ch);
		
        return $data["id"];
	}
	function expand($url) {
		$ch = curl_init($this->path."/url?shortUrl=".$url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        
        $rpta = curl_exec($ch);
		$data = json_decode($rpta, true);
        curl_close($ch);
		
        return $data["longUrl"];
	}	
}

Este código lo guardamos en un archivo llamado googl.php.

Utilizando la clase

Para utilizar la clase lo primero es incluir la clase al inicio de nuestro archivo PHPy luego creamos una instancia del objeto para utilizarlo posteriormente.

require("googl.php");
$googl = new Googl();

Entonces si deseamos acortar un URL haremos uso del método shorten el cual recibe dos parámetros el primero el URL que deseamos acortar y el segundo es tu Key.

require("googl.php");
$googl = new Googl();
$urlmin = $googl->shorten("http://blog.unijimpe.net/tubeplayer/", "tu-api-key");
echo "urlmin: ".$urlmin;

Si por el contrario deseamos expandir un URL ya acortado, haremos uso del método expand el cual recibe un único parámetro que el URL acortado que deseamos expandir.

require("googl.php");
$googl = new Googl();
$urlmax = $googl->expand("http://goo.gl/E6pAi");
echo "urlmax: ".$urlmax;

Como se puede ver el uso de esta clase es muy sencilla, solo hay que indicar el URL que deseamos acortar junto con nuestro API y generaremos automáticamente la versión acortada del mismo. Además de ello esta URL se anexará a nuestra cuenta de Goo.gl y podremos ver las estadísticas de visitas.

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

Comentarios Total 5 comentarios

Pedro
Publicado: 01/04/2011 1:48 am

Muy bueno y sencillo el aporte! Muchas gracias!

Krowner
Publicado: 10/04/2012 6:21 pm

No tengo ni idea de php, podrías decirme cómo debo unirlo todo para poder crear un archivo con un formulario para que me devuelva los datos de la url acortada. Gracias

enlaz.it
Publicado: 19/04/2012 4:05 pm

Acortar una URL está bien, pero mejor es que además te paguen por cada una que sea visitada. Enlaz.it paga por cada enlace acortado que es visitado y ayuda a rentabilizar los esfuerzos SEO del webmaster. Un saludo a todos.

Juan
Publicado: 11/04/2013 3:07 pm

Tengo una duda, como puedo esto para acortar las url externas de mi sitio automaticamente?

Suponiendo que mi sitio es http://ejemplo.com, que todos los links que comiencen con mi web sean excepciones, pero que TODOS los links externos se acorten automaticamente.

Hay alguna manera? Gracias!

Steve
Publicado: 23/05/2014 10:07 pm

Me uso http://moo.pw e http://bit.ly

 

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>)