Acortar enlaces con shorte.st y el curl en PHP

- Andrés Cruz

Acortar enlaces con shorte.st y el curl en PHP

Hace poco mostramos cómo acortar nuestros enlaces de manera automática con adf.ly mediante un sencillo script de PHP que realiza una petición con curl; ahora explicaremos básicamente el mismo concepto pero con otra alternativa para acortar los enlaces conocida como shortes.sh.

curl: Es una herramienta para la transferencia de archivos mediante una URL compatible con múltiples protocolos como HTTP que es el que nos interesa en este caso.

Wikipedia: cURL

Registrarnos en la página de shorte.st

Como todo servicio que deseemos emplear por primera vez, requiere que nos registremos lo cual podemos hacer desde el siguiente enlace: shorte.st y presionamos sobre el botón "Join":

shorte.st registrar

Previamente registrado y autenticado procedemos a dar clic en "Tools" > "Developers API" y veremos una pantalla como la siguiente:

shorte.st Developers API

A diferencia de adf.ly que ofrecía una interfaz cargado y poco legible, aquí nos muestran los datos que vamos a emplear de una manera más clara; en espedifico nos interesa el token de la API la cual esta asociada a nuestra cuenta.

Armando el curl y obteniendo el enlace acortado con PHP

Tomado lo anterior en consideración, ahora creemos el curl para realizar una petición personalizada a shorte.st y luego esta nos retribuirá el enlace acortado; para eso empleamos el siguiente código:

    static private function shortest($url, $key) {
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_HTTPHEADER, ['public-api-token: '.$key]);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array("urlToShorten" => $url)));
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 2);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_URL, 'https://api.shorte.st/v1/data/url');
        $ret = curl_exec($ch);
        if ($ret === false) {
            return $url;
        }
        curl_close($ch);
        $json = json_decode($ret, true);
        if ($json['status'] == "ok") {
            return $json['shortenedUrl'];
        } else {
            return $url;
        }
    }

En donde:

  • $url: es la URL que queremos recortar.
  • $key: es nuestra API ID.

Finalmente obteniendo como resultado una URL con el siguiente aspecto:

http://shorte.st/1W8poT
Los únicos valores que debes proveer son key que lo puedes obtener desde la página de shorte.st (el Token de la API) y la URL de la página que sees recortar; como ves es muy sencillo emplear la API de shorte.st para acortar nuestros enlaces y generar un ingreso extra.

Fuente del ejemplo

Cabe resaltar que el ejemplo lo tomé desde un foro oficial de la gente de shorte.sh; además el ejemplo que vimos tanto en esta entrada como en la anterior (con adf.ly) es solo una forma de emplear su API; es decir, con cualquier tecnología que permita emplear el HTTP (Java, C#, Android ...) podríamos crear nuestra petición personalizada HTTP y obtener la URL acortada al realizar la petición.

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz en Udemy

Acepto recibir anuncios de interes sobre este Blog.