Acortar URL con la API de Google

Versión: 2.x, 3.x.

A través del servicio goo.gl Google nos proporciona una herramienta para acortar URLs en direcciones más pequeñas y fáciles de compartir. Utilizando la API y el módulo Requests podemos acceder a esta funcionalidad directamente desde Python.

Requisitos

Estaremos utilizando Requests para realizar peticiones POST y GET al servicio de Google. Puede ser instalado vía pip.

pip install requests

O bien puedes descargar el código de fuente desde este enlace y ejecutar:

python setup.py install

Además, necesitaremos obtener una clave para poder utilizar la API de Google…

Obtener una clave

Deberás dirigirte a la Consola de Desarrolladores de Google e ingresar con tu cuenta. Hecho esto, procedemos a habilitar la API.

Habilitar API

Se desplegará una lista con los diversos servicios, seleccionaremos URL Shortener API como se indica en la siguiente imagen.

URL Shortener API

Luego, la habilitamos.

Habilitar API

Y nos dirigimos a la configuración de las credenciales.

Ir a las credenciales

En donde debemos indicar la configuración deseada. En primer lugar indicaremos que queremos utilizar el servicio para acortar URLs (URL Shortener API).

Configuración

Luego, desde dónde llamaremos a la API y a qué tipo de datos queremos acceder. En mi caso, seleccionaré Otra entidad que no sea IU y Datos públicos. Continuamos y ya tendremos nuestra clave de acceso creada, que se verá más o menos de la siguiente forma:

AIzaSyBT_Xq1Vf6scSTUb3KtFf2sScbF0OljnYX

Ejemplos

Una vez instalado Requests y habilitada la API, acortamos una dirección de URL realizando una petición POST con el siguiente código. Recuerda reemplazar mi_clave_de_acceso por la clave que has obtenido en el apartado anterior y https://www.recursospython.com/ por la URL que quieras acortar.

import requests

r = requests.post("https://www.googleapis.com/urlshortener/v1/url",
                  params={"key": "mi_clave_de_acceso"},
                  data='{"longUrl": "https://www.recursospython.com/"}',
                  headers={"Content-Type": "application/json"})

Ahora r es una instancia de la clase requests.Response. Obtenemos el resultado convirtiendo la respuesta a un diccionario y accediendo al valor id.

# Imprime http://goo.gl/Ygn6wr
print(r.json()["id"])

De forma análoga, podemos expandir una URL acortada realizando una petición GET.

r = requests.get("https://www.googleapis.com/urlshortener/v1/url",
                 params={
                    "key": "mi_clave_de_acceso",
                    "shortUrl": "http://goo.gl/Ygn6wr"})
# Imprime https://www.recursospython.com/
print(r.json()["longUrl"])

Generalmente la API de Google provee una cantidad de 1.000.000 de peticiones por día. Puedes obtener más información y detalles sobre las peticiones en la documentación oficial.

Curso online 👨‍💻

¡Ya lanzamos el curso oficial de Recursos Python en Udemy! Un curso moderno para aprender Python desde cero con programación orientada a objetos, SQL y tkinter en 2024.

Consultoría 💡

Ofrecemos servicios profesionales de desarrollo y capacitación en Python a personas y empresas. Consultanos por tu proyecto.

2 comentarios.

  1. hola necesito meter prueba2 donde tu pones tu web… como lo hago?

    prueba2 = prueba[7:]
    bot.send_message(chat_id, prueba2)
    r = requests.post(«https://www.googleapis.com/urlshortener/v1/url»,
    params={«key»: «mi_clave_de_acceso»},
    data='{«longUrl»: «https://www.recursospython.com/»}’,
    headers={«Content-Type»: «application/json»})

Deja una respuesta