Cómo crear una Cola de Publicaciones para Canales de Telegram

Podemos comprobar haciendo una simple búsqueda en internet, que casi todas las plataformas tienen su propio sistema de automatización de gestión de contenidos. Por ejemplo, TweetDeck para Twitter, Creator Studio para Facebook e Instagram o HootSuite como soluciones multiredes.

Por lo tanto ¿es necesario crear un sistema de publicación automática para Telegram?

Creemos que sí es necesario, ya que nos ayuda a tener muchas publicaciones programadas y no tienes que estar pendiente todos los días para subir una publicación. O si alguna vez se nos olvida, el sistema lo hará por nosotros.

¿Para qué usamos una cola de publicaciones?

En este caso, nosotros la hemos usado para un proyecto en el que tenemos que publicar mensajes de 09:00h a 23:00h cada 30 minutos, todos los días, en un canal de Telegram. Por lo tanto, para automatizar este proceso quisimos implementar esta solución, creando la Cola de Publicaciones para Canales de Telegram.

¿Existe alguna solución ya implementada?

Sí, pero no se ajusta a una publicación tan periódica como la que necesitamos en nuestro sistema o sí existe, pero con un coste que no podíamos asumir. Por lo tanto, nos tocó implementarla a nosotros. Aquí os dejamos unos enlaces para que veáis las diferentes opciones que existen:

Ahora os preguntaréis ¿cómo programamos un Gestor de Contenidos para Telegram?

Nos vamos a centrar en la parte técnica de cómo programar una cola de publicaciones. La tecnología que vamos a usar es NodeJS. Presuponemos que ya tienes el entorno de desarrollo preparado y NodeJS instalado en tu sistema.

Instalamos las librerías Node Telegram Bot API (https://github.com/yagop/node-telegram-bot-api) y @yobo/queue (https://github.com/estudiyobo/queue).

En este articulo os enseñamos cómo enviar un mensaje simple, la base de datos de publicaciones y canales no la mostramos. Para saber más, contacta con nosotros.

Lo primero que necesitamos es inicializar el bot de Telegram, para ello, importamos la librería node-telegram-bot-api. Insertamos nuestro token obtenido de @BotFather y el id de nuestro canal. (Cómo obtener el id de nuestro canal)

Inicializamos el bot (no hace falta ni polling ni webhooks ya que solo vamos a enviar mensajes, no vamos a hacer caso de los updates)

1
2
3
4
5
6
7
8
const TelegramBot = require('node-telegram-bot-api');

const token = 'YOUR_TELEGRAM_BOT_TOKEN';

const MY_CHANNEL = "YOUR_CHANNEL_ID";
const MESSAGE = "YOUR_MESSAGE";

const bot = new TelegramBot(token);

Una vez con nuestro Bot de Telegram inicializado y preparado para enviar mensajes, vamos a preparar la cola. Para ello, importamos el objeto Queue de la librería @yobo/queue.

Para que empiece la cola, solo tenemos que llamar al método start pasándole como argumento un objeto con los siguientes valores:

  • startTime: La hora de inicio de la cola, en formato HH:MM.
  • endTime: La hora de fin de la cola, en formato HH:MM.
  • interval: El tiempo entre publicaciones, en minutos.
  • action: Una función con lo que queramos que se ejecute cada Interval.
1
2
3
4
5
6
7
8
const Queue = require("@yobo/queue");

Queue.start({
  startTime: "09:00",
  endTime: "23:00",
  interval: 30,
  action: () => bot.sendMessage(MY_CHANNEL, MESSAGE);
});

Y con esto ya tendríamos en nuestro canal de Telegram una publicación cada 30 minutos programada.

Las conclusiones que hemos sacado tras la realización de este proyecto han sido claves para nosotros. Puesto que gracias a ello, hemos podido abstraer la funcionalidad de la cola de publicaciones y publicar la librería @yobo/queue en npm.

¡Eso es todo por hoy yobers! Esperamos que os haya gustado saber cómo creamos la Cola de Publicaciones para Telegram. En los próximos artículos os explicaremos cómo hemos hecho y publicado la librería @yobo/queue.

¡Hasta la semana que viene Yobers!