Ir al contenido principal

Acortador de URLs Goo.gl - API para PHP

S

i estamos interesados en utilizar en nuestras páginas un acortador de URLs, recomiendo utilizar el que nos proporciona google porque, además de ser corto (6 caracetres), nos proporciona estadísticas detalladas del uso de cada enlace generado.

Para utilizar su API existe un proyecto llamado googl-php que incluye una clase muy fácil de usar con la que podremos tanto acortar como expandir URLs con el acortador Goo.gl de Google.

El proyecto se puede ver en su página de Google code y también os dejo un enlace a la clase googl.class

Para utilizar esta clase debemos obtener nuestra clave de API de Google. Para conseguirla debemos acudir al siguiente enlace.

Si, como a mí, la función shorten os da error, podeís modificarla por la siguiente:

//This is the URL you want to shorten
$longUrl = 'http://www.example.com';
$apiKey = 'your_api_key_here';
//Get API key from : http://code.google.com/apis/console/

$postData = array('longUrl' => $longUrl, 'key' => $apiKey);
$jsonData = json_encode($postData);

$curlObj = curl_init();

curl_setopt($curlObj, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url');
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
curl_setopt($curlObj, CURLOPT_POST, 1);
curl_setopt($curlObj, CURLOPT_POSTFIELDS, $jsonData);

$response = curl_exec($curlObj);

//change the response json string to object
$json = json_decode($response);

curl_close($curlObj);

return $json->id;

Os recuerdo que la respuesta JSON que devuelve la API es:

{
"kind": "urlshortener#url",
"id": "http://goo.gl/lBfOH",
"longUrl": "https://www.packtpub.com/php-jquery-cookbook-to-create-interactive-web-applications/book"
}

Comentarios

  1. Excelente artículo, pero una pregunta:
    ¿Es posible que las URLs que vas acortando con el script pasen a la lista de url cortadas?
    Es decir, si uno va a http://goo.gl e inicia sesión, todas las URLs acortadas se quedan en una sóla lista, indicando con ello las estadísticas (clicks y todo ello) de cada link.
    Lo pregunto porque implementé un shortcode (bueno, hice un pequeño plugin) en mi blog WordPress y quiero que al momento de insertar un recurso externo (es decir, código fuente en Dropbox u otro), automáticamente acorte la URL (eso hasta el momento me va a la perfección) Y LA INGRESE a mi cuenta para sacar las estadísticas.
    Y ¿es necesario un token OAuth para poder hacer eso?
    Gracias por la respuesta.

    ResponderEliminar
  2. Hola Bryan,

    la verdad que hace tiempo que no lo uso, pero creo recordar que no, porque aunque utilices tu API Key, realmente no estás usando tu cuenta de Google, por lo que no quedan registradas entre tus estadísticas.

    No sé si alguien que esté más puesto en ello te podría ayudar más.. y si encuentras algún tipo de información extra no dudes en compartirlo!!

    ResponderEliminar
  3. No encontré ninguna solución como la que deseo. Pero estaba pensando en cURL. La pregunta es cómo. Cuando vea modos lo comparto :)

    ResponderEliminar
  4. Buen artículo, pero yo estoy creando el mío propio, te lo recomiendo ya que además publicará automáticamente en Directorios y además agregará SEO al enlace.
    Lo dejaré público y GRATIS, es decir, cualquiera lo podrá usar -> SIGUEW . COM

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Exportar archivo de configuración de WinSCP

S i estamos trabajando con WinSCP seguro que ya hemos guardado distintas sesiones para acceder a ellas directamente en futuras ocasiones y evitar volver a introducir todos los parámetro de configuración. Seguro que también muchos de vosotros habéis agrupado las sesiones en carpetas dependiendo de la naturaleza de las mismas. Este trabajo ocupa un valioso tiempo que no nos podemos permitir repetirlo para todos los equipos que tenemos, por lo que lo más lógico es configurar todas las sesiones y exportar su configuración al resto de equipos , teniendo una sola versión y evitarnos tener que volver a configurar todas las sesiones en cada uno. El problema es que WinSCP no nos muestra la opción de exportar de una forma sencilla, por lo que tendremos que buscarnos la vida. Lo primero que debemos hacer es abrir el programa y acceder a Preferencias -> Almacenamiento (o su equivalente al inglés) En esta pantalla deberemos indicar que almacene la configuración en un archivo

Asignar valores por defecto a input=”file” y a textarea

S eguro que muchos os habéis estado rompiendo la cabeza buscando la forma de dar un valor por defecto a el tipo de dato input=”file” . Pues que sepáis que no se puede!!! No se puede dar un valor por defecto a los campos de este tipo, ya que hacen referencia a una ruta física local y podrían surgir problemas de seguridad. Lo que se puede hacer, por ejemplo, es mostrar la imagen o el nombre del dato que tenemos almacenado y si el usuario desea modificarla, ofrecerle la opción de cargar una nueva. La etiqueta textarea , aunque pueda parecérnoslo, no se trata de un input y para darle valor por defecto simplemente debemos mostrar el texto que deseemos entre su marca de apertura y de cierre. Es decir, en caso de que lo que deseemos mostrar por defecto sea una variable, introduciremos el siguiente código: <textarea id="txtobservaciones" name="txtobservaciones" rows="2" cols="40" class="txt" ><?=$_POST["txtobservaciones"] ?&

Configuración de archivo de Logs para IpTables

I pTables se usa para configurar, mantener e inspeccionar las tablas de reglas de filtrado de IPs en el kernel de Linux, pero por defecto, su sistema de logs no es todo lo completo esperamos. Por defecto, la mayoría de los logs del sistema se guardan en el fichero /var/log/messages pero en este caso vamos a configurar un nuevo fichero para que almacene únicamente los logs que generaremos con algunas reglas en IpTables , creando así su propio archivo de bitácora . Lo primero que debemos hacer es configurar el archivo /etc/syslog.conf , que se trata de un archivo de configuración en el que se indica el modo en que los mensajes del sistema son bitacorizados a través de la utilidad syslogd que se instala y configura por defecto en todos los sistemas GNU/Linux . Debemos añadir al final del fichero la siguiente sentencia: kern.warning /var/log/iptables.log Con esto indicamos que se almacenen los mensajes provienen del kernel con prioridad 4 o superior ('warning' es el nivel de