Desarrollando aplicaciones sobre Twitter
Quién me lo iba a decir a mi cuando me di de alta en 2007. Twitter en aquella época no tenía ningún sentido para mi. Apenas tenía amigos que lo usaran y no le vi ninguna utilidad.
De hecho, hace bien poco publiqué un artículo poniéndolo a parir, pero como dijo aquel: rectificar es de sabios. Hoy en día me comunico más por Twitter que por cualquier otro medio online. Lo que más me gusta es la capacidad que tiene de descubrirte gente cercana con intereses afines. Gracias a Twitter he podido descubrir la gran red de profesionales de mi sector en el País Vasco que hace 1 año ni me imaginaba que existiera.
Hasta la fecha no he necesitado hacer ningún desarrollo relacionado con Twitter pero, en este momento, tanto en mi trabajo como en Trastos de Guerra, el fansite oficial de World of Warcraft que mantengo junto con Aitor y Juantxo, se están planteando desarrollos vinculados de algún modo con Twitter.
Bajo mi punto de vista, al margen de la potencia que tiene como red social, Twitter aporta una gran ventaja para cualquier desarrollo que implique gestión de usuarios. Sin ninguna duda, esto es cada vez un mayor problema en Internet (para los usuarios, no para nosotros, los desarrolladores). Yo ya no sé cuántas veces me he dado de alta en páginas web y llevar un control minucioso de las distintas credenciales de acceso es prácticamente imposible.
Twitter implementa un sistema de autenticación de usuarios mediante OAuth, cosa que nos puede solucionar la papeleta del registro y login de usuarios en nuestras aplicaciones. Por otro lado, el hecho de autenticar los usuarios de nuestras aplicaciones mediante sus cuentas de Twitter las convierte automáticamente en potencialmente "socializables". Existen otras buenas alternativas como OpenId pero, llegado al caso de obligar a alguien a que se registre en un sistema externo, en este momento prefiero mandarle a Twitter que a OpenId porque ofrece más funcionalidades.
El problema que me he encontrado de cara a implementar algo de Twitter en mis desarrollos es la heterogeneidad de las librerías que hay disponibles para PHP. Como norma derivada de los Design Patterns, siempre conviene reutilizar el trabajo de otros pero en este caso no hay una librería que reuna todas las condiciones mínimas como para resolver cualquier problema.
Las que implementan OAuth no implementan toda la API de Twitter, las que implementan la API de Twitter no están orientadas a objetos, las que están orientadas a objetos están obsoletas o no reciben mantenimiento y ninguna plantea soluciones a nivel de cacheo o modularidad.
Así que, remangado, me he puesto a trabajar en una librería modular orientada a objetos según los últimos estándares de PHP5.2 con los siguientes objetivos (copio y traduzco de la Wiki de GitHub donde la he albergado):
- (Casi) Soporte completo de la API de Twitter
- Estructura de 2 capas:
- Capa inferior: Implementa el DAO para interaccionar con Twitter
- Capa superior: Implementa Operaciones Abstractas e Interacciones entre Objetos
- Cache de llamadas al API de Twitter (casi lista)
- Sistema de Autenticación Modular (sistema standard básico ya implementado, obviamente)
- No reinventar la rueda
- Buena documentación
- Test unitarios con PHPUnit
Hay temas que estoy procrastinando deliberadamente:
- Optimización de código y estructura de herencia, clases, etc.
- Definición funcional de la capa superior.
Quiero esperar que alguien empiece a usar la librería para que me eche una mano con estos temas.
La librería se llama TwiPHPr (tuífer), está publicada bajo licencia MIT y podéis probar ya la versión 0.1 que está subida a GitHub junto con las páginas del Wiki de detallan cuestiones de diseño, funcionalidades y demás historias.
Necesito ayuda en muchos campos así que estaré encantado de charlar con todo aquel que se sienta motivado y quiera aportar.

31 Marzo, 2010 - 13:41
Ya que estoy desarrollando la nueva web de Heraldos del Dragón y que algunos miembros tenemos twitter, voy a poner un par de funcionalidades en la misma, así que te tomo la palabra y empiezo a probar cositas y te cuento ;)
31 Marzo, 2010 - 14:04
Pues estupendo!
Si te haces cuenta en github podemos usar http://github.com/ggalmazor/twiphpr/issues para el control de desarrollo
Cualquier cosa que veas que necesitas coméntamela y lo vemos.
31 Marzo, 2010 - 15:35
Ya me he creado un usuario, Pryrios. Si este finde podemos ponernos yo y Alve, ya te contaremos.