En febrero de este año, Twitter incluyó la posibilidad de añadir la etiqueta “cuenta automatizada” en las cuentas de bots para distinguirlos de los perfiles administrados por personas. No en cualquier bot, claro, sino en los llamados bots buenos, aquellos que ayudan a la gente a encontrar información útil y relevante.
En Maldita.es ya os explicamos qué es un bot bueno y en qué se diferencia de otros bots, pero también nos habéis preguntado cómo funcionan exactamente, cómo se produce esa automatización y cómo están conectados con Twitter. Hoy vamos a contaros qué hay detrás de su desarrollo y cómo funcionan dos de estos bots que probablemente hayas usado alguna vez en la red social: RecuerdameBot y Colorize_Bot.
El primero es un bot que te recuerda tuits: solo tienes que responder al tuit que quieras que te recuerde diciéndole cuándo quieres que lo haga (en tres horas, en un mes, cierto día a cierta hora) y automáticamente lo hará. Al segundo puedes mandarle una imagen en blanco y negro y, en cuestión de minutos, te la devolverá en color.
El puente entre un bot (una vez desarrollado) y Twitter es la API de la red social
¿Cómo los crearon sus ideadores? Lo primero es desarrollar el bot, es decir, escribir el código en un lenguaje de programación. RecuerdameBot está desarrollado en Python y Colorize_Bot en JavaScript.
La mayor duda por la que nos habéis preguntado es cómo se salta de ahí a Twitter, es decir, cómo se produce el puente entre el bot desarrollado y la plataforma para que haya una comunicación, se puedan obtener menciones, responder mensajes automáticamente, etc. Pues se hace “a través de la API (el medio en que se comunican dos sistemas informáticos) de la red social. Para usar la API de Twitter primero hay que registrarse como desarrollador”, explica a Maldita.es Francisco Induni, desarrollador de RecuerdameBot.
Para ello, “hay que solicitar una cuenta de desarrollador a Twitter, rellenar un formulario donde se indica el uso que le darás a la cuenta y, si la solicitud cumple las expectativas de Twitter, se aprobará. Una vez conseguido, cada desarrollador obtiene unos tokens o claves de acceso, con los que se puede ir a cualquier lenguaje de programación que soporte peticiones HTTP”, indica Asdrúbal Zambrano, desarrollador de Colorize_Bot.
Con eso, ya se puede establecer comunicación entre el programa y Twitter, y solo queda “desplegar” el código en un servidor o un ordenador para que el bot funcione durante todo el día. Ahí intervendrán los webhooks, un sistema de comunicación automático que “dispara un evento cada vez que alguien menciona al bot en Twitter”, detalla Zambrano. Es como si fuera una alarma que salta cada vez que alguien “taggea” al bot para avisarle de que hay una petición.
Vamos a entender un poquito las tripas digitales de estos dos bots, qué se cuece ahí dentro cuando un tuitero les escribe con una petición.
RecuerdameBot utiliza los ID únicos de tuits y usuarios para guardar los recordatorios
En el caso de RecuerdameBot, Induni nos detalla que la parte más complicada es entender el mensaje del usuario e interpretarlo para que pueda descifrar las distintas maneras en que un usuario puede pedir el recordatorio. Cuando el bot ya ha procesado en qué día y hora el tuitero quiere que le recuerden el tuit, guarda en su base de datos el recordatorio.
“Tanto los tuits como los perfiles de Twitter tienen un identificador (ID) único. Ningún ID de ninguno de los tuits existentes se repite. Por ejemplo, el ID del usuario de @RecuerdameBot es 1254452999621152775 (e incluso al cambiar el nombre del usuario de una cuenta, el ID permanece igual). Cuando el bot es mencionado, obtiene tanto el ID único del tuit como el del usuario. Entonces guarda en su base de datos estos dos identificadores y el día y horario en UTC (horario universal) en que debe recordarlo”, explica Induni.
RecuerdameBot revisa la base de datos constantemente y, cuando llega la fecha en la que hemos pedido que queremos, coge ambos ID y ejecuta el recordatorio.
Colorize_Bot utiliza una API externa para colorear y limita las solicitudes para no exceder los tuits diarios que permite Twitter
Zambrano, desarrollador de Colorize_Bot, explica que en su caso cada mención se procesa y valida para ver si el tuit que mencionó al bot contiene imágenes. (Esto solo podrá hacerlo si la cuenta de Twitter es pública). Después, “se capturan las imágenes y se envían a la API de colorización de DeepAI, que devuelve una imagen coloreada en menos de seis segundos, y el siguiente paso es responder automáticamente al tuit donde se menciona al bot con la imagen coloreada”.
Esto suena increíblemente rápido pero, si hay muchas solicitudes, puede no gustarle demasiado a Twitter, ya que la red social tiene límites: 2.400 tuits diarios por cuenta, subdivididos en límites más pequeños con intervalos de media hora. Por eso, “el bot está programado para responder cada 30 segundos en caso que sean menciones seguidas para no romper esas reglas y no subir de unos 100 tuits la hora”.
Spam, contenido inapropiado, shadowban... Con qué tienen que tener cuidado los bots buenos automatizados para no ser bloqueados
Ese es uno de los problemas que podría encontrarse un bot, pero no es el único. Zambrano explica que, en su caso, le han bloqueado el bot porque hay usuarios que lo etiquetan con contenido explícito o inapropiado, así que hace una revisión manual para retirar este tipo de imágenes y bloquear al usuario. También si los mensajes automáticos que lanza el bot tienen siempre el mismo texto, Twitter lo considera spam.
“La plataforma tiene un algoritmo que constantemente revisa las cuentas y aquellas que detecta automáticamente como posibles bots de spam (o cuentas falsas) les aplica un shadowban [baneo en la sombra]: no elimina ni bloquea la cuenta pero la oculta a los demás usuarios, por ejemplo, no notificando a los usuarios que el bot menciona y no mostrando los tuits en el timeline de los usuarios que siguen al bot”, indica Induni de RecuerdameBot.
Twitter tiene su propia comunidad de desarrolladores donde se puede explorar todo lo relacionado con la API y otras herramientas, y hay muchos otros bots populares en la plataforma, como Thread Reader App, que crea una página con todo el contenido de un hilo de Twitter, o Emoji Mashup Bot, que genera nuevos emojis juntando dos existentes. También otros simplemente para pasar el rato, como Emoji Aquarium, que recrea acuarios con emojis (cada cual mata su tiempo como quiere).
Ya sabes que puedes comprobar si debajo del nombre de la cuenta de Twitter aparece “Automatizado por” para saber si es un bot bueno aprobado por la red social. ¿Y cómo se consigue esa etiqueta de automatización? Como explican ambos desarrolladores, se hace fácilmente desde la página de Twitter de la cuenta del bot: Opciones -> Tu cuenta -> Información de la cuenta -> Automatización. Dentro, el desarrollador inicia sesión con la cuenta real y aparecerá el mensaje de "Automatizado por".