php

Shrinkme.io con PHP: consumo de API

En este post veremos cómo consumir la API del acortador shrinkme.io usando PHP.

Por si no lo sabes, la web de shrinkme.io es una web de acortadores, es decir, te registras, acortas un enlace, lo compartes y ganas dinero cada que alguien lo visita y salta la publicidad.

En fin, no vamos a ver las ventajas o desventajas de shrinkme.io; vamos a ver cómo acortar enlaces de este servicio usando la API que ofrecen, haciendo el consumo desde PHP.

Configurar cuenta de shrinkme.io y obtener token

Para esto debes tener un token y una cuenta obviamente. Si no tienes una cuenta, puedes unirte en el siguiente enlace:

http://shrinkme.io/ref/parzibyte

Una vez que tengas una cuenta, inicia sesión, ve a Tools > Developers API y copia tu token; como se ve en la siguiente imagen:

Ve a tu cuenta y obtén tu token para consumir la API

Ahora que ya tienes tu token vamos a ver el código PHP.

shrinkme.io con PHP

He creado la siguiente función de PHP que consume la API de shrinkme.io. Recibe una cadena que es el enlace sin acortar y devuelve (si no lanza una excepción) el enlace acortado.

<?php
/**
 * Acortar un enlace usando la API de shrinkme.io
 * @author parzibyte
 * @see https://parzibyte.me/blog
 * @param string $enlace
 * @return string
 * @throws Exception
 */function acortarConShrinkMeIo($enlace)
{
    # Si no tienes API token, únete en http://shrinkme.io/ref/parzibyte
    $apiToken = "API_TOKEN_AQUÍ"; # Tu api Token
    $url = sprintf("https://shrinkme.io/api?api=%s&url=%s", $apiToken, urlencode($enlace));
    $respuesta = @file_get_contents($url);
    if (!$respuesta) {
        throw new Exception("Error acortando $enlace al comunicar con la API");
    }
    $datos = json_decode($respuesta);
    if (!property_exists($datos, "shortenedUrl") || empty($datos->shortenedUrl)) {
        throw new Exception("No se devolvió un enlace válido: $respuesta");
    }
    $acortado = $datos->shortenedUrl;
    if (preg_match('/^http[s]:\/\/shrinkme\.io\/\w+$/', $acortado) !== 1) {
        throw new Exception("Enlace inesperado al acortar con shrinkme.io el enlace $enlace: " . $acortado);
    }
    return $acortado;
}

La API devuelve un JSON que hay que decodificar; y si todo va bien, el enlace acortado estará en shortenedUrl. Para hacer la petición usamos file_get_contents.

Por cierto, para formar la cadena y evitar concatenar cadenas uso sprintf. Finalmente, para saber si se ha devuelto un enlace válido utilizo una expresión regular.

Consumir shrinkme.io con PHP

He definido la función, pero no he mostrado una forma de uso. Para usarla simplemente hay que encerrar el código en un try catch y manejarlo como se debe.

Obviamente eres libre de modificar la función y acomodarla a tus necesidades; esto es lo bueno del open source 😉

<?php
# Modo de uso
try {
    $enlace = "https://parzibyte.me/blog";
    $acortado = acortarConShrinkMeIo($enlace);
    echo "El enlace acortado con shrinkme.io es: $acortado";
} catch (Exception $e) {
    echo "Error acortando: " . $e->getMessage();
}

Para probar voy a ejecutar el ejemplo en la consola (aunque recuerda que esto funciona igual para la web) así:

Ejecutar ejemplo de código de PHP para consumir API

Conclusión

No me queda más que dejar otros tutoriales de acortadores con PHP:

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 hora hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

6 días hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

6 días hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

6 días hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

6 días hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

6 días hace

Esta web usa cookies.