domingo, 4 de marzo de 2012

Recapitulando

Acabamos de entrar en el mes de marzo, y es el momento de revisar el trabajo realizado y lo que queda por hacer.

La línea de trabajo hasta ahora seguida ha estado marcada por lo siguiente:
· Investigación sobre la plataforma Moodle (instalación, administración, desarrollo de aplicaciones).
· Conocer el funcionamiento y la estructura interna de los plugin de Moodle.
· Revisar los plugin creados de Moodle buscando coincidencias con el proyecto actual.
· Pruebas sobre el API de Twitter, qué ofrece y cómo puede combinarse con las aplicaciones.
· Repaso de la programación en el lenguaje PHP.
· Uso de la librería cURL de PHP para realizar peticiones al API de Twitter.
· Documentación a través de tutoriales en el blog del proyecto.

En las próximas semanas habrá que tratar las siguientes cuestiones:
· Integrar las peticiones al API de Twitter a través de PHP en la estructura base de un plugin de Moodle, y buscar la forma de representar los resultados, de forma que se puedan hacer pruebas directamente desde la plataforma.
· Empezar a definir funcionalidades concretas para desarrollar dentro del plugin.
· Establecer la lógica de cómo van a funcionar las autentificaciones en el plugin, cuándo se van a realizar peticiones públicas, cuándo se va a usar la cuenta del profesor, si es útil que los alumnos asocien su perfil a su cuenta en tuenti y el plugin pueda hacer uso de ella...

Próximamente en el blog nuevos tutoriales que aún faltan por retocar, sobre las peticiones al API de Twitter en PHP.

sábado, 3 de marzo de 2012

API de Twitter

Ya va siendo hora de que hablemos un poco del otro pie del proyecto: Twitter y su API.
Es obligatorio ahora hacer referencia a la documentación oficial de Twitter, que podemos encontrar aquí.
Me voy a ahorrar un poco el apartado más técnico del API, ya que es una información que podéis encontrar en la documentación, y os voy a contar cómo empecé a trastear un poco con ésta.
Twitter nos proporciona tanto dos API de tipo REST como un API streaming. Nos vamos a decantar por el REST. A través de una consola podemos realizar peticiones públicas al API. Es decir, peticiones que no necesitan autentificarse como una cuenta, como por ejemplo, obtener el TimeLine público en un momento dado.
Para realizar todos los tipos de peticiones, tendremos que hacerlo a través de una autentificación. Para comenzar, iniciaremos sesión con nuestra cuenta de twitter en https://dev.twitter.com/apps/new. Entonces nos aparecerá un formulario en el que tendremos que registrar nuestra aplicación.

Una vez rellenemos los campos que nos piden, accederemos al perfil de nuestra aplicación. Twitter sigue un sistema de autentificación llamado OAuth. Así que en el apartado OAuth Settings, encontramos los datos necesarios para realizar peticiones que no sean públicas, sino a través de una cuenta, con una consola.
Para no utilizar una aplicación externa, podemos simplemente entrar en la página https://dev.twitter.com/console, donde tenemos una consola que nos proporciona Twitter para hacer pruebas.

Ahora podemos hacer todas las peticiones públicas que queramos. Para hacer peticiones privadas, pulsamos sobre el candado y le damos a "OAuth". Nos dará la opción de iniciar sesión con nuestra cuenta y ya podremos realizar las peticiones privadas.

Vamos a ver dos ejemplos:

· Petición pública.
Podemos pulsar por ejemplo en Trends -> trends/daily. Ahora pulsamos el botón GET. Tenemos dos pestañas, en la pestaña Request podemos ver qué petición se ha realizado y en la pestaña Response podemos ver la respuesta. En este caso, los trending topics de distintas horas en las últimas 24 horas.


· Petición privada.
Por ejemplo, vamos a escribir un tweet desde la consola en nuestra cuenta promocionando el blog del proyecto. Para ello, pulsamos en Tweets -> statuses/update y sustituimos en la petición http "{status" por el texto que queremos publicar en el tweet. En este caso,
http://api.twitter.com/1/statuses/update.json?status=Podeis seguir los avances del blog en http://edu-twitter.blogspot.com/
Esta vez pulsamos sobre POST y no GET, ya que estamos enviando información y no sólo obteniendo. El resultado es el siguiente:


Y con esto ya podemos ir probando diferentes peticiones al API de Twitter.
Antes de finalizar, hay que mencionar que existen un límite de peticiones, 150 es el límite máximo de peticiones por hora en el caso de peticiones no autentificadas y 350 por hora en el caso de que las hagamos a través de una cuenta.