Developing a Twitter aplication: the journey. CH 1
Bueno hoy quiero escribir un poco, en esta noche de viernes. Pues es gracioso como mi maestro de progra me cambio el proyecto a la mera hora y ya no tendré que developear mi aplicación de twitter.
Pero no quiero dejarlo ahí arrumbado el proyecto. Quiero retomarlo como proyecto personal por la simple y llana razón que leí demasiado al respecto y por que sigo de terco con que no hay una aplicación realmente eficaz como en su tiempo lo fue Tweetdeck antes de que lo comprara twitter y le diera en la torre. Ademas de que también quiero aprender y pulir mas mis skills de coding monkey. Y la mejor forma de aprender es aplicar ese conocimiento.
Digo en dispositivos móviles tenemos miles de aplicaciones, unas mejores que otras. Pero muy completas. Y siento yo que para escritorio ya no esta eso. Últimamente eh usado janetter y a mi gusto funciona mejor en MacOS que en Windows pero no me extraña.
Pero ya no hay una aplicación que me satisfaga como twitero y fan de dicha red social... ¿Y la solución? Si quieres que este bien hecho, hazlo tu mismo. Y esa es la idea, retomar parte de una vieja idea que traia de developear un cliente para iOS al estilo J.A.R.V.I.S. pero esta vez sera para pc... Mas adelante tal vez si me aviente la versión móvil.
Mi tortuoso camino empezó con Java, probando librerías, leyendo la poca y mal hecha documentación al respecto. Y después de semanas de research de como utilizar los métodos de autentificacion OAUTH (que por cierto son una putada para comprender que mierdas esta pasando con ellos) me di cuenta que Java no me iba a ayudar en nada.
Tal vez en que seria multiplataforma un solo build... Pero en realidad casi todas las librerías, si no es que todas ninguna estaba bien preparada y actualizada para la version 1.1 de la API de twitter.
Puede ser que entre visual studio y el script reference de Unity me mal acostumbraron a tener documentación bella y a la mano a la hora de desarrollar. (Eso y yo me muevo mas en 3 dimensiones haciendo que los pixeles y meshes bailen a mi son que en aplicaciones).
Y después de días de frustración (fueron como 2 semanas) de estar leyendo documentación, buscando ayuda y esas cosas encontré desglosadito como se supone que funciona esa cosa.
Y bueno explicare antes que todo que son los Oauth... o esa mamada.
The OAuth 1.0 Protocol
Bueno y ¿que carajos es esa madre? Estuve investigando por que era confuso pedir las cosas para hacer un simple tweet.
Según en el sitio de esa cosa dice: "
OAuth provides a method for clients to access server resources on behalf of a resource owner (such as a different client or an end- user). It also provides a process for end-users to authorize third- party access to their server resources without sharing their credentials (typically, a username and password pair), using user- agent redirections."
Básicamente y en pocas palabras lo que esta cosa hace es autorizar acceso a usuarios a los servidores pero sin usar el login y el password que es algo muy típico. Antes Twitter no usaba estas jaladas y era muy sencillo usar la API, bueno pues ademas esta cosa usa un HTTP request y es un desmadre. De hecho no es fácil de codear y no son unas cuantas lineas. Es tooodo una pinche biblia para poder comunicarse con la API. En el sentido que te autorice la entrada. ¿Por que? Por que twitter necesita... bueno el protocolo de OAuth necesita varios parametros. El primero es el "consumer_key" Con eso Twitter identifica quien carajos (que aplicación)esta haciendo la request. Ya que identifico la aplicación entonces twitter solicita el "oauth_nonce" que es otra key y esta es única de carácter alfanumérico, y se supone la usa para saber si la request se ah hecho varias veces y a que horas. La bendita key esta en base 64 y con una encriptacion de 32bits de datos a la ave maría a.k.a random. Ya después de tener estas 2 llaves el reino de twitter aun no puede ser nuestro por desgracia. Este post ya se que se esta tornando un poco largo pero se aguantan esta es bitácora del capitán... No había antes eso por acá... ahora si abra mas cosas de coding y así. Ademas me ayuda a recapitular en mía aprendizaje y comprender mejor las cosas.
Prosigamos... ya falta menos, créanme que escribir esto es nada comparado a escribir el código para hacer estas request. Ya que en Java como en C# no son enchiladas :/.
En Java después de mucho buscarle un alma caritativa puso su forma de resolverlo sin librerías, pues existen librerías para eso pero la mayoría son un desmadre y confusas. Ademas que la documentación es malisima! Pero me seguí encontrando problemas con las librerías de Java que había adquirido.
Así que después de seguirle escarbando me decante por C# es otro lenguaje que aunque conozco gracias a Unity tiempo atrás y el curso de progra que se campecheano entre Java y C#... Encontré que tiene librerías mas actualizadas y documentación mas clara para lograr la autentificacion bendita.
La próxima que tenga tiempo, después de los benditos exámenes tratare de hacer todo el proceso... Pues se puede hacer hasta sin librerías especializadas...
TO BE CONTINUED...












