API, la abreviatura utilizada para interfaz de programa de aplicacin (Application program
Interface), es un conjunto de rutinas, protocolos y herramientas para construir aplicaciones de software. Un API especifica cmo deben interactuar los componentes de software que se estn utilizando en la programacin de componentes de una interfaz grfica de usuario (GUI). Una API es una interfaz de software a software, no una interfaz de usuario. Con las API, las aplicaciones se pueden comunicar entre s sin ningn conocimiento o intervencin del usuario. Twitter, una red social basada en el microblogging que permite a los usuarios publicar mensajes de una longitud reducida en nmero de caracteres, ofrece su propia API para desarrolladores que permite interactuar con stas publicaciones y las tendencias de los datos. A travs de las API de Twitter cualquiera puede crear aplicaciones que se comuniquen con el servicio de sta red social. Qu es? Twitter pone a disposicin de los desarrolladores tres APIs distintas: Dos son lo que llaman REST API y la otra es una Streaming API. Dependiendo del uso que se le quiera dar a los datos, se pueden utilizar estas APIs por separado o combinadas. Search API La API de bsqueda est diseada para permitir a un usuario consultar el contenido de Twitter. Esto puede incluir la bsqueda de un conjunto de tweets con palabras clave especficas, la bsqueda de tweets haciendo referencia a un usuario especfico, o la bsqueda de tweets de un usuario en particular. Esta API tambin proporciona el acceso a los datos alrededor de Tendencias (Trending Topics). Tambin es importante saber que la API de bsqueda se centra en la relevancia y no lo completo. Esto significa que algunos Tweets y usuarios pueden faltar a la hora de desplegar los resultados de bsqueda. Si lo que se necesita es hacer consultas a la API a mayor velocidad y de un volumen de datos mayor, entonces se debe trabajar con la API de Streaming. REST API La REST API permite a los desarrolladores acceder a los servicios bsicos de Twitter incluyendo lneas de tiempo, actualizaciones de estado, y la informacin del usuario. Si, por ejemplo, se deseara hacer una construccin de un perfil de un usuario con su nombre, su cuenta de Twitter (@ejemplo), su avatar, y las personas que estn siguiendo en Twitter, esto se todo con un par de llamadas a la REST API. Adems de ofrecer acceso mediante programacin a los objetos de lnea de tiempo, de estado y de los usuarios, esta API tambin permite a los desarrolladores el integrar sus propias aplicaciones con Twitter. A travs de sta API, el usuario puede crear y enviar, responder a tweets, marcar como favoritos ciertos tweets, y hacer retweets. Streaming API La API de Streaming funciona para la recoleccin en tiempo real del Twitter Firehose (Un stream de datos sociales es lo que se conoce como un Firehose). Esta API es para desarrollar aplicaciones que hagan un uso intensivo de datos y es la ms adecuada para desarrollar herramientas o aplicaciones que realicen minera de datos o con las que se desee hacer una investigacin analtica. La API de Streaming permite especificar y trackear (seguirle la pista) una gran cantidad de palabras clave, recuperar tweets con etiquetas geogrficas de una determinada regin u obtener los estados publicados de un conjunto de usuarios. Para ello, debe establecer una conexin HTTP de larga duracin y mantener esa conexin. Durante el tiempo en el que sta conexin exista, el servidor de Twitter informar al usuario de cundo hay informacin nueva como tweets nuevos, menciones, etc. y enviar esto a la aplicacin desarrollada. La aplicacin va a estar haciendo listening de la informacin que enve Twitter. En conclusin, la REST API de Twitter permite a los desarrolladores acceder a los datos bsicos de Twitter incluyendo los timelines actualizados, datos de estado, y la informacin del usuario. Los mtodos de la Search API funcionan como Twitter Search (similar al Twitter Search que est disponible en el visualizador web o mvil normal) y busca tendencias de los datos. La API de Streaming ofrece acceso a grandes volmenes de datos (Tweets) casi en tiempo real. La diferencia entre las APIs es por las distintas limitaciones de velocidad y formato de salida que cada una tiene. Qu se necesita para utilizarla? Para empezar a utilizar la API de Twitter es necesario ser autenticado primero, lo que significa que Twitter tiene que tener cierta informacin sobre la aplicacin que se vaya a crear y cmo se va a utilizar para lo que va a proporcionar claves de acceso. Para obtener las claves de acceso es necesario crear una aplicacin en el sitio para desarrolladores de Twitter.
Para crear una aplicacin, uno debe acceder al sitio de desarrolladores de Twitter e iniciar sesin con su cuenta de Twitter. Ya ah, existe un link que dice My Applications. Haciendo click ah llevar a otra pgina donde es posible introducir un nombre para una aplicacion, descripciones y url (este debe ser su URL del sitio) y dejar url callback vaca. (Se puede llenar tambin con la direccin IP de un servidor local para hacer pruebas) Una vez creada la aplicacin, Twitter generar la configuracin de OAuth y sus tokens de acceso a la nueva aplicacin. Es necesario conectarse con los servicios de Twitter OAuth para hacer consultas a la API de Twitter. Hay 4 cdigos de autenticacin que se generan: Consumer key Consumer secret Access token Access token secret Los tokens de acceso no tienen una fecha y hora de expiracin. Sern vlidos para su uso al hacer peticiones en nombre de sus usuarios durante el tiempo que el usuario haya concedido su acceso a las aplicaciones. Un usuario puede revocar el acceso a la aplicacin en cualquier momento. La documentacin del API de Twitter tiene los recursos para hacer las consultas. La API est basada en REST y a la hora de hacer consultas, arroja resultados en formato XML o JSON, as como en formatos RSS y ATOM. Adems, la API est construida basada en HTTP (tiene operaciones definidas que aplican a los recursos de informacin. Estos son POST, GET, PUT y DELETE. Los mtodos para recuperar datos de la API de Twitter requieren una peticin GET, los mtodos que presenten, cambiar o destruir datos requieren un POST, etc.) Para poder extraer informacin de Twitter, lo que sigue es el lenguaje de programacin preferido para mandar peticiones. Twitter tiene un listado de libreras o recursos para diversos lenguajes de programacin (aqu). Estos facilitan la conexin a los servicios de Twitter. Al hacer las consultas es necesario llamar a las libreras. Limitaciones? Para poder comenzar a utilizar el API de Twitter, es necesario tener una cuenta en la misma red social. Adems de que es necesario el crear una aplicacin en el sitio de desarrolladores. REST API A travs de los mtodos de la API REST user_timeline, por ejemplo, se puede acceder hasta un un mximo terico de 3000 estados (La aplicacin permite hacer 15 requests cada 15 minutos y es posible extraer 200 tweets en cada consulta). Esto es para asegurar el funcionamiento del sitio. Cada recurso tiene un nmero determinado de consultas por hora. Es posible consultar dichos nmeros aqu. Los requests de una aplicacin son independientes de otras aplicaciones. Streaming API La limitante que ms parece prevalecer para la Streaming API, que permite obtener la informacin de Tweets en tiempo real, es que Twitter solo permite el buscar hasta 400 palabras clave por aplicacin. Es posible solicitar que ste nmero se incrementado. No es recomendable utilizar mas de una sesin oAuth para incrementar el nmero de palabras clave que pueden ser consultadas.