¡Hola! En esta entrada os traigo cómo hacer Sign In con Twitter y Codeigniter.
Primero agradecer a los lectores del blog, son pocos todavía pero de vez en cuando se pasan por aquí y en general a la gente que termina por aterrizar y están un rato mirando aquí y allá.
Tenía esta entrada pendiente desde hace algún tiempo por lo que recomiendo pasarse por la entrada de Sign In con la API de Twitter para recordar lo que allí se escribió, sobre todo el flujo que sigue la API para permitirnos conectar con Twitter nuestra aplicación.
En aquella entrada si os acordáis usamos la librería twitteroauth de Abraham que nos la podíamos descargar de Github, en este caso tenemos la suerte de que ya ha habido alguien que ha adaptado esta librería para usarla como una librería de Codeigniter de MunGell.
Y lo bueno es que no viene solamente la librería «traducida» para Codeigniter sino que también nos viene con un controller de ejemplo que se llama Twitter.
Como se puede ver está ya todo organizado para que lo copiemos en nuestra aplicación en las carpetas correspondientes.
El fichero Twitteroauth.php del directorio libraries es la librería que se encarga de usar OAuth.php de third_party. Lo interesante viene en el controlador twitter.php.
NOTA: A partir de este punto os recomiendo tener abierto el fichero twitter.php para seguir la siguiente explicación.
El controlador incluye varias acciones.
__construct:
Se carga la librería twitteroauth y la configuración de config/twitter.php que incluyen los tokens de acceso, además se hace una distinción entre los usuarios que ya hayan hecho Sign In, los que están en proceso de autenticación y los que aun no han hecho nada, en cada caso se crea una conexión que viene a ser una instancia de la clase Twitteroauth.
auth:
En esta acción se produce el proceso de autenticación, donde se hace la petición a la URL de Callback para que devuelva los tokens.
callback:
Llama a la URL de autorización para que devuelva los datos del usuario.
post:
Se encarga de publicar un Tweet si se tienen las credenciales adecuadas.
reset:
Limpia las variables de sesión.
Para que este proceso saliese bien me encontré con algunos problemas, en las redirecciones de las URL hay que tener claro si tenemos suprimido el index.php con el .htaccess, pues si no lo tenemos suprimido debemos incluirlo.
Por otro lado tenemos que cargar la librería session para el manejo de sesiones.
Podéis ver su funcionamiento en http://www.tweetyze.com.
No he incluido código en la entrada pues considero que teniendo los ficheros se pueden ver claramente los conceptos, no obstante si alguno cae por aquí y tiene alguna duda o no puede hacerlo funcionar os invito a comentar vuestras dudas o aclaraciones.
Gracias 😉