Lo que siempre quiso saber del API de Twitter y nunca se atrevió a preguntar (actualizado en 2017)

Uno de los post más populares de barriblog es Lo que siempre quiso saber del API de Twitter y nunca se atrevió a preguntar. Es una entrada de utilidad para los que tienen curiosidad sobre esta API pero los cambios que va realizando Twitter hacen que se quede actualizada. Por ese motivo, la he vuelto a reescribir para que se ajuste a la realidad actual. A continuación, la versión de 2017.

Actualmente Twitter es una de las mayores fuentes de información en tiempo real de Internet, alimentada por millones de usuarios, reales y automáticos.

chartoftheday_10460_twitter_user_growth_n

El número de usuarios de Twitter  tuvo un crecimiento espectacular hasta 2014, desacelerándose a partir de esa fecha.  Parece que Twitter está cerca de su techo y que no consigue atraer a nuevos usuarios. No obstante, es la plataforma de referencia para informarse en todo lo relacionado con los acontecimientos especiales. Su fortaleza radica en que la inmensa mayoría de sus mensajes son públicos lo que facilita su velocidad de propagación, llegando a muchas personas en muy poco tiempo.

Últimamente Twitter no ha actualizado sus cifras, la última vez que lo hizo fue en Junio de 2016. Actualmente no se conoce cual es el volumen de tuits por segundo

datos de Twitter

Seguramente el lector atraído por título de la entrada  le gustaría conocer la  respuesta a estas preguntas:

  • ¿Qué se puede obtener con las APIs de Twitter?
  • ¿Cuáles son las limitaciones de las APIs de Twitter?
  • ¿Qué persistencia tienen los tuits?

La respuesta a estas preguntas están en esta infografía para los muy ocupados y en modo textual para los que su curiosidad sea aún mayor.

Infography tweets_2017

¿Qué se puede obtener con los APIs de Twitter?

Twitter ha ido variando sus APIs según sus versiones. Al principio ofrecía tres APIs:   REST, Search y Streaming.  Este verano  ha reestructurado la documentación de sus APIs en un intento de simplificar (aunque creo que no está muy logrado)  y de proporcionar información de los servicios estándar (gratis) o premium (de pago) que ofrece.

La documentación la estructura en:

Por nostalgia y por mantener el concepto de API que parece diluirse en la nueva documentación, voy a utilizar la nomenclatura clásica. Por otro lado me voy a centrar en las APIs en la opción estándar (gratis) para descargar datos: REST API, Search API y Streaming API.

Para acceder a cualquier API de Twitter se requiere autentificarse por medio de OAuth. Esto implica crear una app en Twitter  y establecer un access token entre la app y un usuario.

Todos los datos que suministran las APIs están en formato JSON. Los objetos más usados son el User object  que contiene la información del perfil del un usuario  y el tweet object que proporciona la información de contexto de cada tuit incluyendo el user object del autor, las entidades (hashtags, menciones a usuarios, URLs y multimedia) y la geo-localización.

La REST API ofrece a los desarrolladores el acceso al core de los datos de Twitter. Todas las operaciones que se pueden hacer vía web son posibles realizarlas desde la API, como ver los perfiles de los usuarios, quienes son sus seguidores y seguidos, los tuits que publican, cuales son los trending topics, etc..

La Search API suministra los tuits con una profundidad en el tiempo de 7 días que se ajustan a la query solicitada. Es posible filtrar por lenguaje y localización.

El Streaming API proporciona un flujo de tuits en casi tiempo real al establecer una conexión permanente  con los servidores de Twitter.  Se puede obtener un filtrado (statuses/filter) por diez tipos de parámetros diferentes, siendo los más habituales palabras claves, usuarios y localizaciones. También es posible descargar una muestra aleatoria de tuits (statuses/sample).

¿Cuáles son las limitaciones de  los APIs de Twitter?

En la REST API existe una limitación variable en función del método solicitado. Esta restricción se mide en solicitudes que se pueden realizar durante una ventana de 15 minutos. Los valores oscilan entre 15 y 900. Una operación a su vez puede incluir una respuesta múltiple (paginación) lo que agiliza la descarga. Los métodos más restrictivos son los que proporcionan la listas de seguidores o seguidos de los usuarios que están limitados a 15 solicitudes. Los menos restringidos son las solicitudes de tuits de usuarios que permiten 900 consultas.

En el Search API  la limitación es de 180 peticiones cada 15 minutos. En la Streaming API, al ser un flujo continuo, la restricción se aplica al caudal recibido que nunca será mayor a 50 tuits por segundo.

En la siguiente tabla se muestran algunos ejemplos de peticiones y cantidad de información obtenida.

API Petición Max. datos por petición (página) Cada 15 minutos
REST GET statuses/user_timeline 200 tuits 900 * 200 = 180.000 tuits
REST GET users_show 1 perfil 1 * 900 = 900 perfiles
REST GET follwers_list 200 perfiles 200 * 15 = 3.000 perfiles
REST GET followers_ids 5.000 ids de usuario 5.000 * 15 =  75.000 Ids
Search GET search/tweets 100 tuits 180 * 100 = 18.000 tuits
Streaming POST statuses_filter Máximo de 45.000 tuits

¿Qué persistencia tienen los tuits?

Aunque todos los tuits residan en las BB.DD. de Twitter hay una limitación temporal para obtenerlos.

API Limitación temporal
REST NO
Search -7 días
Streaming No hay historia, solo tiempo real

1 respuesta

  1. octubre 9, 2017

    […] Se recomienda leer la versión actualizada a 2017 […]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *