Cargando...
 
Skip to main content

Aproximaciones a la integración de Telegram


En cheLA preferimos usar Telegram como herramienta de mensajería instantánea. Es una herramienta bastante más potente que WhatsApp. Si bien no es la herramienta más ética que podríamos utilizar, al menos no pertenece a los gigantes de las telecomunicaciones.

El uso de Telegram en cheLA se da fuertemente de la siguiente manera. El equipo de cheLA a través de varios grupos con diferentes finalidades, incluyendo uno que usamos para registro inmediato de lo que está sucediendo (el grupo cheLA qué pasa). Como foro en Orquesta Desvío, que maneja un grupo enorme con varios canales de todo tipo donde en cada uno se discuten varios temas, se suben registros, se comunican acciones, etc. Como . Y en Las Cuencas Cuentan también como comunicación interna y además en un canal de discusión y registro.

El asunto relevante con todo esto es poder integrar las diferentes plataformas en una red de conocimiento de cheLA y sus proyectos.

Primeros acercamientos: manipulación a través de un script

NOTA: Al momento de escribir esta parte del artículo estamos usando la versión Telegram para Android v12.4.0 (6506)

El puntapié inicial fue el grupo de Orquesta Desvío. El grupo es masivo, pesa varios gigas, principalmente porque se han mandado muchos medios, algunos en crudo. Y presentaba una primera dificultad.

Telegram tiene la posibilidad de exportar todo un canal (o grupo) de forma completa. O sea con todos sus mensajes de texto, audio, multimedia, etc. Ese proceso lo hace en dos formatos: HTML y JSON, y una estructura de carpetas con los medios.

Si bien quedan exportados por completo, los canales que están divididos por temas (o tópicos) no salen así separados, sino que te da todo de corrido. La posibilidad de separar los temas se da a partir de la manipulación de lo que Telegram exporta, lo que implica entender cómo es esa estructura.

En esta aproximación amateur, trabajamos con ayuda de un LLM. Arrancamos con Google Gemini (sí, contradiciendo el principio por el cual no usamos WhatsApp). El primer problema fue darle el contexto adecuado porque Gemini, por más que aseguraba "saber", en realidad no tenía ni idea de cómo es la estructura de los mensajes de Telegram.

Para trabajar con estas salidas unificadas, obviamente que lo más útil es usar los archivos JSON. El siguiente es un fragmento de ese JSON en el cual:

  1. Se crea un tema.
  2. Se publica un mensaje en ese tema.


(NOTA: por alguna razón TikiWiki no indenta bien el fragmento)

{

"id": 2,
"type": "service",
"date": "2025-12-01T13:25:52",
"date_unixtime": "1764606352",
"actor": "Federico",
"actor_id": "user301480998",
"action": "topic_created",
"title": "Topic A",
"text": "",
"text_entities": []
},
{
"id": 3,
"type": "message",
"date": "2025-12-01T13:25:52",
"date_unixtime": "1764606352",
"from": "Federico",
"from_id": "user301480998",
"reply_to_message_id": 2,
"text": "Este es el Topic A",
"text_entities": [
{
"type": "plain",
"text": "Este es el Topic A"
}
]

},


En esto lo importante es analizar las claves y sus valores de cada objeto. Por ejemplo, el objeto que crea el tópico tiene un id ("2"), es de un tipo ("service") está definido por una acción ("topic_created"). También podemos ver el título del tema ("title": "Topic A",).

El siguiente objeto, un mensaje dentro de "Topic A", tiene una clave que hace que quede agrupado dentro del tópico: "reply_to_message_id": 2.

Estos son tres objetos de un grupo con tópicos:

{

"id": 4,
"type": "service",
"date": "2025-12-01T13:26:07",
"date_unixtime": "1764606367",
"actor": "Federico",
"actor_id": "user301480998",
"action": "topic_created",
"title": "Topic B",
"text": "",
"text_entities": []
},
[...]
{
"id": 13,
"type": "message",
"date": "2025-12-08T13:43:32",
"date_unixtime": "1765212212",
"from": "Federico",
"from_id": "user301480998",
"reply_to_message_id": 4,
"text": "Topic B, Topic B",
"text_entities": [
{
"type": "plain",
"text": "Topic B, Topic B"
}
]
},
[...]
{
"id": 21,
"type": "message",
"date": "2026-02-09T18:11:32",
"date_unixtime": "1770671492",
"from": "Federico",
"from_id": "user301480998",
"reply_to_message_id": 13,
"text": "Quién dijo qué?",
"text_entities": [
{
"type": "plain",
"text": "Quién dijo qué?"
}
]

},


Acá el primer objeto (id 4) define el tópico, el segundo (id 13) es un mensaje suelto dentro de ese tópico y el tercero (id 21) es una respuesta a un mensaje (definido como el objeto id 13) dentro de ese tópico. En este caso, para rastrear a qué tópico pertenece el id 21 hay que rastrear a que mensaje responde el mensaje respondido: 21 responde a 13 que responde a 4 (creación del tópico); entonces, 21 pertenece a ese tópico.

A partir de acá ya fue fácil armar un script de python para transponer estas estructuras en otras formas de visualizar. También fue de gran utilidad para comprender mejor la estructura de los mensajes y avanzar en otras formas de integración. Básicamente, resolver este problema fue la piedra angular de esta integración.

Imagen en vivo de un chat de Telegram como sitio web

En las siguientes aproximaciones la idea es trabajar con el chat en vivo. Que los mensajes que llegan se reflejen en otra interface que permita verlos, explorarlos y relacionarlos con cosas de afuera de Telegram. Esto requiere trabajar con bots y bases de datos. Para esta aproximación dejamos abierta la posibilidad de generar relaciones a partir de los usuarios y de los bots y más adelante empezar a semantizar el contenido. Lo relevante acá es que ya empiezan a aparecer otros conceptos como webhook y polling. Si bien esto no genera una integración propiamente dicha, sí permite otro tipo de manipulaciones. Además, ya acá lo que se hace es desarmar lo más posible la estructura de un chat de Telegram para luego recomponerlo en otra interface.

Integración de Telegram en vivo a TikiWiki a través de los Trackers

Acá el asunto de la integración es más serio. El problema de cómo incorporar el chat a la base de datos, el corazón mismo de la información de TikiWiki, se aborda con el uso de Trackers. Eso permite que TikiWiki indexe los contenidos. Además, se pueden manejar o sincronizar funcionalidades de TikiWiki (por ejemplo las etiquetas) desde Telegram. Lo que se hace es conectar el bot de Telegram con la API de TikiWiki.