Generalidades sobre el API de Twiter y el acceso a la información por HTTP utilizando la librería cURL.
Si alguna vez has deseado comunicar con los servidores de Twitter desde un script PHP, para recibir el estado de un usuario, sus seguidos o postear un mensaje automático a Twitter, por poner varios ejemplos, esperamos poder ayudarte con este artículo y los siguientes.
Generalidades del API de Twitter
En realidad Twitter pone a disposición de los usuarios tres APIs distintas. Dos son lo que llaman "REST API" y la otra es una "Streaming API". Las aplicaciones basadas en Twitter podrán usar las tres API distintas, combinadas para llevar a cabo sus objetivos.
El uso de las APIs de Twitter está limitado, por lo que tus aplicaciones no pueden conectarse un número indeterminado de veces para solicitar cualquier cosa. Sin embargo, los límites serían más o menos aceptables para páginas personales y proyectos pequeños (además, siempre podemos cachear los resultados para no tener que solicitar lo mismo muchas veces seguidas). En el caso que se desee construir sistemas que hagan un uso intensivo del API de Twitter, estaría la posibilidad de registrar la aplicación. Los límites de acceso al API sin registro son 150 solicitudes por hora, mientras que para aplicaciones registradas en la "whitelist" podrían llegarse a hacer 20.000 solicitudes por hora.
Ahora bien, las solicitudes a veces se se cuentan dependiendo de la IP del sistema que conecta con Twitter y a veces dependiendo de la cuenta de usuario Twitter que está solicitando un recurso, por lo que estos límites podrían ser un poco mayores si tenemos uno o varios usuarios Twitter. Hay también otros límites de uso del API, basados en los límites de paginación de las búsquedas que se pueden realizar, es decir, que limitan los resultados de búsquedas de estatus de un usuario o las referencias de una palabra clave en los post públicos.
Otra cosa importante es que, cuando comuniquemos con el API de Twitter, tenemos que trabajar en UTF-8 y enviar cualquier parámetro codificado con formato de URL. Estos formatos y juegos de caracteres podemos conseguirlos fácilmente con diversas funciones de PHP.
API de Twitter y cURL
El API de Twitter funciona por HTTP, accediendo a URLs que devuelven datos, todo por el protocolo HTTP. Para facilitar la solicitud de URLs por parte de un cliente y procesar las respuestas del servidor a esas solicitudes, muy habitualmente se utiliza una librería aparte llamada cURL, que tiene una serie de funciones y procedimientos para acceder al contenido de URLs.Así pues, por si fuera poco, para utilizar el API de Twitter entra en juego un nuevo API o librería, el cURL, pero no es para preocuparse, puesto que la librería de cURL tiene una implementación dentro de PHP, así como en muchos otros sistemas, por lo que podremos utilizarla fácilmente para acceder a el API de Twitter.
Para acceder a cURL podríamos utilizar la línea de comandos, si es que el comando cURL está instalado en nuestro sistema, pero también podemos utilizar las funciones para cURL que tiene PHP.
Tal como indican en la propia documentación del API de cURL, podríamos lanzar este comando para acceder al "public timeline" (los últimos mensajes públicos enviados por todos los usuarios de Twitter):
curl http://api.twitter.com/1/statuses/public_timeline.rss
Dado que este comando sirve para acceder a información pública, no requiere autenticación de un usuario para usar el API de Twitter. Hay muchas otras URL de consulta al API de Twitter que sí requieren el login de un usuario, como veremos a continuación.
En el siguiente ejemplo solicitamos las últimas 20 informaciones posteadas por los seguidos del usuario autenticado que realiza esta conexión con el API, cuyos datos de login enviamos a través del comando curl.
curl -u username:password http://api.twitter.com/1/statuses/friends_timeline.xml
Los resultados los obtendremos en estos casos en XML, concretamente en el formato que se utiliza para los feeds RSS.
Para continuar mostraremos cómo hacer un sencillo script PHP que usa cURL para accedel al API de Twitter.
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...