Reenviando mensajes de Telegram hacia Mastodon 🐘
En estos días, y gracias a mi amigo Robert Sasuke, redescubrí Mastodon, una red social descentralizada, libre y de código abierto, que puedes hospedar en tu propio servidor y conectarla al fediverso. Si no la conoces, en este video se explica brevemente:
Con Mastodon 🐘 tienes tu propia red social que no es controlada por ninguna compañía, donde puedes generar un espacio de libre expresión y en la cual se puede vivir en comunidad, sin la tiranía de los algoritmos en las redes sociales convencionales.
Abordé más detalladamente sobre Mastodon en un episodio de mi pódcast, donde comento sobre la centralización vs. descentralización y qué pasos podemos dar para movernos al lado correcto de la historia.
Ahí tienes un poco de contexto, pero en este blog post lo que quiero explicar es cómo reenviar mensajes desde Telegram hacia Mastodon, de forma automatizada.
Teniendo un canal de Telegram, esto es súper útil si no quieres repetir tus publicaciones manualmente en ambos espacios.
Me puse a Googlear y encontré este repositorio, con la solución más completa de las que vi: https://github.com/roborg-codes/telegram-mastodon-bridge. Pero por su dificultad para instalar y configurar la herramienta en un servidor, me basé en ese (hice un fork), le añadí unas mejoras y es el que te traigo hoy como solución -al menos temporal- al problema.
Por si quieres ver el código o contribuir: https://github.com/lugodev/telegram-mastodon-bridge.
¿Cómo reenviar mensajes de Telegram a Mastodon?
- Un bot de Telegram, con su token
- Una cuenta en una instancia de Mastodon, crear una aplicación y obtener el código de acceso
- Un servidor para desplegar el bot, puedes comprar un VPS o un droplet en Digital Ocean
Vamos a descomponer estos pasos:
Creando un bot de Telegram
- En Telegram, entras a https://t.me/BotFather.
- Ejecutas el comando
/newbot.
- Escribes un nombre para el bot y lo envías.
- Luego escribes el username del bot y lo envías.
- Si no está reservado, Telegram te dirá que se creó el bot satisfactoriamente y te dará el token del mismo. Copia el token, guárdalo y no lo compartas con nadie.
ℹ️ Un detalle importante: Debes añadir el bot que acabas de crear como administrador en el canal que deseas utilizar para reenviar los mensajes hacia Mastodon. Cuidado con añadir el bot en varios canales, porque podrían reenviarse mensajes de ambos lugares.
Crea una aplicación en Mastodon
Una aplicación dentro de Mastodon es la forma que tienes de acceder a su API y controlar tu cuenta con programas externos, como el bot que estamos vinculando.
Para crear la aplicación, te diriges hacia Settings > Applications dentro de la instancia de Mastodon. O puedes hacerlo con el enlace tuinstancia.com/settings/applications, por ponerte un ejemplo.
Una vez dentro, toca en "New application", introduce el nombre que deseas ponerle, por ejemplo "Telegram" (aunque puede ser cualquier otro), y le das permisos al menos de escritura, aunque puedes dejarlos tal y como están por defecto. Cuando llenes los campos, tocas el botón "Submit" que está al final del formulario.
Ya tenemos creada la aplicación, entonces toca el nombre para entrar.
Dentro de la aplicación, tienes esta información sensible que no debes compartir con nadie, porque podría utilizarse para controlar tu cuenta. En este caso, yo cambié los valores, solo son de ejemplo. Copia el "access token".
Desplegando el bot en un servidor
Si no tienes un servidor aún, puedes comprar uno en DigitalOcean, OVH, Contabo, etc. O puedes hospedar el bot en Heroku. Te dejo un video que podría serte útil si deseas tomar esta última opción.
Asumiento que ya tienes el servidor (basado en Linux), entra al mismo e instala:
¿No tienes instaladas estas dependencias? Aquí están los comandos:
sudo apt-get install git
Para instalar Docker y docker-compose:
Instaladas las dependencias, clonamos el repositorio en algún lugar del servidor, en este caso lo haré en /apps,
pero puedes hacerlo donde desees. Cuando lo clones, entra al mismo.
mkdir /apps cd /apps git clone https://github.com/lugodev/telegram-mastodon-bridge cd telegram-mastodon-bridge
Solo faltaría crear un archivo .env
, en el cual colocarás las variables de entorno antes mencionadas, que necesita el bot para funcionar correctamente:
MASTODON_TOKEN=tu_access_token_de_mastodon TELEGRAM_TOKEN=tu_token_de_telegram MASTODON_INSTANCE=https://tuinstancia.com MASTODON_VISIBILITY=public
Puedes utilizar el editor Nano o Vim para editar el archivo, espero que esa parte sepas hacerla 😀
Una vez creado el archivo con ese contenido, levantamos el bot:
docker-compose up
Verás compilarse la imagen de Docker, levantarse el contenedor y ejecutarse el bot.
Todo listo, ahora se reenviarán los mensajes desde tu canal de Telegram hacia Mastodon.
ℹ️ Este repositorio que cloné y mejoré levemente tiene algunas limitaciones: solo se reenvían mensajes de texto plano, imágenes y videos. Las galerías se publican como posts diferentes.
¿Todo esto te parece demasiado complicado? Entonces, querrás enterarte del lanzamiento de Teleadm.in, que traerá esta integración de forma nativa. Suscríbete en el sitio para unirte a la lista de espera. El producto se lanzará en Q2 del 2022 (marzo, abril, mayo).