Debo reconocer que en mi blog no se habla mucho de PHP, desarrollo web y temas relacionados. Y eso es un poco paradójico cuando tengo tanto interés en esos temas. Pero hoy quiero publicar algo que creo que tal vez sea interesante. Mientras me encontraba programando algo me he visto en la necesidad de algo y no lo he encontrado, asi que lo he desarrollado yo.
La situación era la siguiente, necesitaba “expandir” unas urls “comprimidas” con ow.ly el acortador de Hootsuite. Servicio que uso para gestionar mis cuentas de Twitter. Supuse que tendrían alguna API o algun sistema para expandir la url. Pero no tienen API. He encontrado un tweet de abril del año pasado diciendo que los desarrolladores se apunten a una lista. Lo siento, pero no tengo ganas de apuntarme a una lista de correo o parecido, pero necesito información de como expandir una url acortada por su servicio. Pues bien, no existe la manera. Al menos ellos no han publicado ninguna manera. Han pasado mas de 12 meses y no hay información… Muy profesional.
Pero como lo necesito, pues lo programo yo y ya esta. Cojo el codigo de la función para llamar a otras apis y la dejo en lo fundamental y me pongo a investigar. Como es una redirección primero hago una petición a ow.ly, este le contesta con un codigo 301 y la url. Este va a esa url y coge la dirección. Esto ultimo es asi por que la redirección no la muestra como parte de la cabecera, solo el codigo http. Tal vez la solución es cutre, pero no se me ha ocurrido otra solución.
La función para php es la siguiente:
function owly_expand($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER,1);
$result = curl_exec($ch);
$cabeceras = curl_getinfo($ch);
curl_close($ch);
return $cabeceras['url'];
}









