Publica en Twitter desde el safari del iPhone

Hola,

Hoy ando de inventos…  😉

Resulta que me he instalado la aplicación de Twitter para iPhone porque hace mucho tengo una cuenta en esta red social, pero también hace mucho que la tenía abandonada.

Mirando la aplicación echaba mucho en falta el poder publicar URL directamente desde el navegador del iPhone, pero buscando y buscando me encontré que en los settings de la aplicación para Twitter había una forma de hacer lo que quería.

Las instrucciones a seguir están en esta página:

Era crear un simple bookmark y luego editarlo para dejar solo el javascript. Esto estaba genial pero… las URL las publicaba a tamaño completo y esto para una red que solo permite 140 caracteres por post, es realmente un problema.

Mirando la forma en que lo hacían me di cuenta que lo que hacen es usar javascript para llamar a la aplicación de Twitter y le pasan el URL actual, o sea, el window.location.

La pregunta del millón era: ¿Qué pasa si antes de llamar a tweetie tomo la URL, la convierto  a un formato pequeño (por ejemplo: tinyUrl) y luego se la paso a la aplicación de Twitter? ¿Cómo podría hacer algo así?

Pues bien… me froté las manos y empecé:

Me creo una página HTML sin más, incluyo una referencia a Jquery desde el CDN de Microsoft, y con jQuery en mano, todo es fácil :)))))

Mi página debe:

1- Tomar un parámetro que le pasarían, el cual sería el URL en el que se encuentra navegando el usuario
2-
De alguna forma usar el servicio de TinyURL para convertir la URL a un formato pequeño
3-
y finalmente pasar el resultado a Twitter.

¿Parece simple no? Aquí está el código:

<html>
<head>
    <script type=»text/javascript» src=»http://ajax.microsoft.com/ajax/jQuery/jquery-1.5.1.min.js»></script>
    <script type=»text/javascript»>
        function makeTinyUrl(url)
        {
            $.getJSON(‘http://json-tinyurl.appspot.com/?url=’ + url + ‘&callback=?’,
            function (data)
            {
                window.location = ‘tweetie:’ + data.tinyurl;
            });
        }

        var urlParams = {};
        var e, 
        a = /+/g,  // Regex for replacing addition symbol with a space
        r = /([^&=]+)=?([^&]*)/g,
        d = function (s) { return decodeURIComponent(s.replace(a, » «)); },
        q = window.location.search.substring(1);

        while (e = r.exec(q)) urlParams[d(e[1])] = d(e[2]);

        makeTinyUrl(urlParams[‘tw’]);

    </script>

</head>
<body/>
</html>

Después de publicar mi página HTML en un servidor,  el resto era fácil: Seguir los mismos pasos que dan en Atebits y probar… 🙂

Me cree un bookmark en el safari del iPhone con la siguiente URL:

y WALAAAA!!! Funciona!! :)))))

Quiero aclarar que esta URL solo la dejaré publica por un tiempo para que puedan probar, pero de ninguna forma es parte o se trata de un servicio público. 

Salu2