Introducción al API de Twitter y cURL

  • Por
Generalidades sobre el API de Twiter y el acceso a la información por HTTP utilizando la librería cURL.
Twitter es una de las redes sociales de mayor crecimiento, basada en el concepto de "microblogging", que permite a los usuarios postear mensajes de una longitud reducida en número de caracteres. A través de las API de Twitter cualquiera puede crear aplicaciones que comuniquen con el servicio de la mencionada red social.

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.

Nota: REST API es una API web que funciona por HTTP y se accede a partir de URLs que devuelven contenidos en formatos distintos, como XML, JSON, HTML, etc.

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.

Nota: Puede interesarte una escueta nota sobre qué es cURL que tenemos publicada en DesarrolloWeb.com, que tiene referencias para seguir aprendiendo cURL.

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.

Nota: Estos comandos los he probado desde línea de comandos de Linux, que tiene cURL instalado y los ha reconocido a la primera. En Windows no tenía el comando instalado, pero descargué el curl desde la página http://curl.haxx.se/download.html, en la versión Windows. Con esto tendrás un zip y dentro el curl.exe que es el propio comando que puedes ejecutar desde la línea de comandos de Windows.

Para continuar mostraremos cómo hacer un sencillo script PHP que usa cURL para accedel al API de Twitter.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

Uri

14/1/2013
public_timeline obsoleto
A día de hoy, twitter ha quitado soporte para el public_timeline

es decir esta: http://api.twitter.com/1/statuses/public_timeline.rss

Fuente: https://dev.twitter.com/discussions/10803

Ea!

Leo

03/3/2015
Es obsoleto entonces este artículo y todo el tema de API de Twitter ?
Hola, buen día

De acuerdo al comentario anterior, podemos pensar que este arículo y todos los Post relacionados con API de Twitter , ¿ Son obsoletos ? o estoy entendiendo mal ?