api-googl-php

Cómo acortar urls con goo.gl y php usando el API

Las urls cortas pueden sernos de mucha utilidad en infinidad de casos, ya bien sea para publicar enlaces en redes sociales, enviarlos por el móvil, o incluso para nuestros scripts en php por el motivo que sea. Vamos a ver de forma simple como usar el api de goo.gl con php para poder acortar urls.

Si normalmente sueles acortar urls, o simplemente necesitas automatizar algún script que tienes hecho para que «comprima» las direcciones web de forma automática, vamos a ver una clase en PHP específicamente diseñada para utilizar el acortador de urls de google, goo.gl.

Gracias a lo fácil que nos lo ha puesto google, lo solucionaremos en un par de pasos, pero antes de nada tienes que saber que vas a necesitar tener una cuenta de Google Developer (gratis si tienes cualquier cuenta de google), y por ello vamos a ver cómo activar el api de googl en nuestra consola de desarrollador.

Cómo habilitar el api para acortar urls con google goo.gl

Lo primero será ir a la consola de desarrollador y desde ahí crear un proyecto con el nombre que queramos. Una vez que tengamos el proyecto creado, por ejemplo WEBSHORT entraremos en él y veremos a la izquierda un menú donde haremos click en APIs & auth.

En la siguiente página veremos una lista de todos los servicios que nos ofrece google como desarrolladores, y buscaremos URL Shortener API, o servicio para acortar URLs, le daremos al botón de la derecha para ponerlo en modo ON y que se quede activo. Una vez activo haremos click en Credenciales y después en crear nueva clave.

Léete también  Cómo borrar todas las fotos de Google Photos

credenciales-crear-llave

Nos saldrá un mensaje en el que elegiremos clave de servidor.

google-api-server-key

Y después introduciremos la IP de nuestro servidor (donde vamos a utilizar el script php, si es nuestro pc con un xampp entonces vamos a cualesmiip y ponemos la que nos aparezca ahí que será la de nuestro pc), y a partir de ese momento ya podremos empezar a mandar consultas desde nuestra ip o la de nuestro servidor con scripts php.

ip-server-api-key

Recuerda que el límite de peticiones de forma gratuíta son 1.000.000 al mes, que quizás no las sobrepases pero tienes que saberlo por si tienes mucho volúmen de trabajo y deja de funcionarte.

Clase para acortar urls con el API de goo.gl y php

Esto ya es fácil, una vez tengamos nuestra clave de api pública (se genera y la veremos al seguir los pasos anteriores), simplemente tenemos que abrir el archivo php (o crear) en el que queramos poner el código. Lo ideal es que sea un archivo que se cargue en todas las páginas donde queremos usar la clase, en wordpress por ejemplo dentro de functions.php. Introduciremos la siguiente clase:

<?php
class GoogleURL
{

 private $apiURL = 'https://www.googleapis.com/urlshortener/v1/url';

 function __construct($apiKey)
 {
  //creamos la url de solicitud con nuestra key pública
  $this->apiURL = $this->apiURL . '?key=' . $apiKey;
 }

 //convierte una url larga en una corta
 public function encode($url)
 {
  $data = $this->cURL($url, true);
  return isset($data->id) ? $data->id : '' ;
 }

 //convierte una url corta en la real (larga)
 public function decode($url)
 {
  $data = $this->cURL($url, false);
  return isset($data->longUrl) ? $data->longUrl : '' ;
 }

 //enviamos y recogemos los datos del api de google
 private function cURL($url, $post = true)
 {
  $ch = curl_init();
  if ($post) {
   curl_setopt( $ch, CURLOPT_URL, $this->apiURL );
   curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json') );
   curl_setopt( $ch, CURLOPT_POST, true );
   curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode(array('longUrl' => $url)) );
  }
  else {
   curl_setopt( $ch, CURLOPT_URL, $this->apiURL . '&shortUrl=' . $url );
  }
  curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
  curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
  $json = curl_exec($ch);
  curl_close($ch);
  return (object) json_decode($json);
 }
}
?>

Una vez tengamos listo el archivo que carga la clase, simplemente nos queda utilizarlo con los siguientes códigos:

<?php
$api = new GoogleURL('CLAVE_API');
//ver url acortandola
echo $api->encode('https://www.vichaunter.org');
//ver url real
echo $api->decode('http://goo.gl/mbMv2X');
?>

Por supuesto aquí es donde colocaremos nuestra clave de api. De esta forma tan sencilla podremos acortar las urls de forma automática, lo cual podemos usar tanto para nosotros en algún script privado, como si queremos integrarlo en nuestro foro o cms y así evitar spam y link juice.

Léete también  Magento, sacar hora fecha del sistema [Solucionado]

¿Lo has probado? ¿Tienes algún otro método?


AYUDANOS a poder seguir dando respuestas. Te podemos echar una mano y tú también a nosotros, símplemente dale a me gusta.