Introducción
Recientemente he estado trabajando con la API de algunos acortadores. Comenzaré una serie de tutoriales sobre cómo trabajar con cada una de ellas desde PHP. Hoy veremos cómo trabajar con la API de ouo con PHP. Ouo es un servicio (ouo.io) que acorta enlaces y paga cada que alguien los visite.
No vamos a utilizar curl, simplemente file_get_contents 😉
Nota: puedes obtener tu clave API en https://ouo.io/manage/tools/quick-link
Si no tienes una cuenta puedes unirte en http://ouo.io/ref/LASKFzcB
Consumir API de ouo con PHP
Lo que necesitamos es nuestra clave API sacada del sitio, y un enlace. El código de ejemplo queda así:
<?php
function ouo_io($claveApi, $enlace){
//Petición GET
$acortado = @file_get_contents(
"http://ouo.io/api/"
. urlencode($claveApi)
. "?s="
. urlencode($enlace));
// Comprobar si lo que obtuvimo
// es un enlace válido utilizando una
// expresión regular
if (preg_match('/^http:\/\/ouo\.io\/\w+$/', $acortado) !== 1)
throw new Exception("Enlace inesperado al acortar con ouo.io: " . $acortado);
return $acortado;
}
// Ejemplo de uso
$claveApi = "TU_CLAVE_API_AQUÍ";
$enlace = "https://parzibyte.me/blog";
echo ouo_io($claveApi, $enlace); //Salida: algo como http://ouo.io/D5UZXp
?>
Encerramos todo dentro de una función que recibe la clave API y el enlace que se desea acortar. Luego hace la petición y verifica el resultado.
En caso de que se cumpla con la expresión regular (http://ouo.io/ALGUNAS_LETRAS_O_NÚMEROS) devolvemos el enlace acortado.
En caso contrario, lanzamos una excepción porque el enlace no fue acortado e imprimimos el resultado erróneo.
Ejemplo de uso
Al ejecutarlo con clave y enlace correcto, sale esto (la salida cambiará dependiendo de tu clave API):
Cuando no ponemos una clave correcta:
Finalmente, cuando no ponemos un enlace correcto
Como vemos, se lanza una excepción si no es un enlace válido. Podemos encerrar la llamada a la función con un try catch. Si no se lanza excepción alguna, todo está bien.
Esto lo ejecuté desde la terminal, pero recordemos que podemos poner la función en cualquier archivo PHP que sea llamado desde un servidor web.
wow, gracias, que buen aporte.
Excelente me sirvió, muchas gracias!
Es un gusto ayudar 🙂
Te invito a suscribirte a mi blog escribiendo tu correo en la barra lateral de la derecha. Saludos
Pingback: API de Shinkme en PHP con JSON y manejo de errores - Parzibyte's blog