Cómo acortar URLs mediante goo.gl utilizando su API en Node.js

  • #nodejs

En este artículo te explicamos como acortar URLs a través de goo.gl utilizando el API sin ninguna librería de por medio.

El servicio de goo.gl es genial para empequeñecer nuestras URLs y convertir una URL tipo https://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones en algo tan minúsculo como https://goo.gl/EfF5.

La URL Shortener API es la API que nos ayudará a crear programáticamente estas URLs acortadas.

Podemos hacer uso de las extensas librerías oficiales creadas por Google así como también de librerías externas como pueden ser node-googl o googl-php, pero en este artículo os vamos a explicar como hacer estas peticiones utilizando la API mediante Node.js de manera fácil y sin dependencias.

Utilizaremos únicamente la librería request por ser algo casi obligatorio hoy en día para realizar peticiones HTTP en Node.js.

Autorización

Lo primero que hay que hacer es autenticarnos con Google para poder realizar las peticiones, ya que desde hace un tiempo viene siendo obligatorio. Podemos crear un token OAuth 2.0 o, de manera más sencilla, solicitar una API key.

La API key se solicita en la consola de desarrolladores de Google pero antes de nada, debemos activar la "URL Shortener API" en nuestro proyecto. Esto se hace navegando por el menú de la izquierda hasta la sección "APIs" dentro del apartado "APIs y autenticación". A continuación activamos la "URL Shortener API".

Después en el mismo apartado del menú, seleccionamos "Credenciales" y en la parte inferior creamos una nueva clave en "Acceso a API pública". Elegimos "Clave de servidor" y le indicamos desde que IPs accederemos al servicio.

Esta clave de la API es la que utilizaremos en el querystring para autorizar el acceso.

Uso de la API

Acortar una URL

Para acordar una URL hacemos una petición POST, especificamos nuestra API key mediante el querystring, rellenamos el body de la petición con la variable longURL (que viene a ser la URL que queramos acortar) y, por último, le decimos a request que recibiremos un objeto JSON.

JavaScript
request({
  method: 'POST',
  url: 'https://www.googleapis.com/urlshortener/v1/url',
  qs: {
    'key': 'API_KEY',
  },
  body: {
    'longUrl': 'https://felixsanz.com',
  },
  json: true,
}, (err, response, body) => {
  if (err) {
    console.error(err)
  }

  if (response.statusCode === 200 || response.statusCode === 304) {
    // Accedemos a nuestra URL corta a través de body.id
    console.log(body.id)
  }
})

Expandir una URL

Para obtener la URL original de una acortada por goo.gl, solo tenemos que llamar a la API mediante el método GET, pasando a través del querystring la API key y la variable shortURL (la URL corta que queremos expandir) y, nuevamente, indicar a request que recibiremos un objeto JSON.

JavaScript
request({
  method: 'GET',
  url: 'https://www.googleapis.com/urlshortener/v1/url',
  qs: {
    'key': 'API_KEY',
    'shortUrl': 'https://goo.gl/DSPrBZ',
  },
  json: true,
}, (err, response, body) => {
  if (err) {
    console.error(err)
  }

  if (response.statusCode === 200 || response.statusCode === 304) {
    // Accedemos a nuestra URL larga a través de body.longUrl
    console.log(body.longUrl)
  }
})

Estadísticas

Para consultar las estadísticas de un enlace acortado solamente tenemos que añadir la variable projection=FULL al ejemplo anterior, es decir:

JavaScript
qs: {
  'key': 'API_KEY',
  'shortUrl': 'https://goo.gl/DSPrBZ',
  'projection': 'FULL',
},

Si queremos ver las estadísticas a través de un navegador sólo tenemos que añadir .info al enlace corto y acceder a él, ejemplo: https://goo.gl/IWdW7n.info.

Compartir en