Telegraf.js
Framework moderno para crear bots de Telegram con Node.js y TypeScript
Telegraf.js es un framework moderno para crear bots de Telegram usando Node.js. Con una API limpia, tipados en TypeScript y soporte total del Bot API de Telegram, te permite lanzar desde bots simples hasta sistemas complejos.
🧡 Recomendamos Telegraf ¶
Usamos telgraf para construir de forma muy sencilla bots con telegram, tanto con polling como con webhook. En la masterclass vimos con detalle la arquitectura de estos bots y cómo explotar las facilidades del framework.
⭐️ Accede a la masterclass completa
Ficha ¶
Distribución:
Open source (licencia MIT) — Instalación vía npm, yarn o pnpm.
🔑 Características clave ¶
- Soporte completo para el Telegram Bot API 7.1.
- Compatible con TypeScript y entornos serverless (AWS Lambda, Cloud Functions, etc.).
- Integración flexible con servidores HTTP, Express, Fastify y más.
Perfecto. Aquí tienes la sección 💡 Ideas para usar este recurso con cada idea más desarrollada, destacando los puntos críticos donde Telegraf.js brilla:
💡 Ideas para usar Telegraf ¶
-
Bot personal de recordatorios
Usa Telegraf para programar mensajes en momentos clave del día. Gracias a su soporte parasessiono tareas programadas desde el backend, puedes recordar hábitos, enviar mensajes motivacionales o mantener un seguimiento diario de objetivos. Ideal para automatizar rutinas sin depender de apps externas. -
Atención al cliente automatizada
Telegraf permite escuchar mensajes y comandos personalizados, por lo que puedes construir flujos conversacionales simples (FAQ, horarios, contacto, etc.) o integrar una lógica más compleja con botones interactivos (inline_keyboard). Su estructura de middleware facilita escalar la lógica según el tipo de usuario o canal. -
Notificaciones en tiempo real
Al tener acceso directo alctx.telegram.sendMessage, puedes usar Telegraf como puente para recibir alertas de eventos en tu backend: nuevos pagos, errores en producción, commits en GitHub o menciones en redes. Es una solución ágil para no depender de servicios de terceros tipo Slack o email. -
Encuestas internas o feedback exprés
Aprovecha los botones inline y los manejadores decallback_querypara lanzar encuestas rápidas en grupos o chats privados. Puedes recoger respuestas, almacenarlas y tomar decisiones con datos en tiempo real. Perfecto para equipos ágiles o comunidades activas. -
Gestión de contenidos
Telegraf puede conectarse con tu CMS, RSS o backend para publicar automáticamente nuevos artículos, vídeos o episodios de podcast en un canal de Telegram. También puedes añadir comandos para moderar publicaciones o seleccionar manualmente qué se envía. Útil tanto para medios como para proyectos personales con contenido regular.
👍 Ventajas ¶
- Muy fácil de usar y configurar, incluso para proyectos pequeños.
- Tipados excelentes en TypeScript que reducen errores.
- Ligero y extensible mediante middlewares personalizados.
Ejemplo de uso ¶
🛠 Instalación ¶
mkdir mi-bot-telegram
cd mi-bot-telegram
npm init -y
npm install telegraf
🤖 Crear un bot en Telegram ¶
- Abre Telegram y busca
@BotFather. - Usa el comando
/newboty sigue los pasos (elige nombre y username). - Copia el token que te entrega al final, será algo así como
123456789:ABCDefGhIjKlmNoPQRsTUVwxyZ.
📦 Código de ejemplo ¶
Crea un archivo bot.js:
// bot.js
import { Telegraf } from 'telegraf';
// Usa una variable de entorno para el token del bot
const bot = new Telegraf(process.env.BOT_TOKEN);
// Comando /start
bot.start((ctx) => {
ctx.reply('👋 ¡Hola! Soy tu bot de pruebas. Usa /help para ver qué puedo hacer.');
});
// Comando /help
bot.help((ctx) => {
ctx.reply('🛠 Comandos disponibles:\n/start - Saludo\n/help - Ayuda\n/echo <texto> - Repito lo que me digas');
});
// Comando /echo que repite el mensaje
bot.command('echo', (ctx) => {
const input = ctx.message.text.split(' ').slice(1).join(' ');
if (input) {
ctx.reply(`📢 ${input}`);
} else {
ctx.reply('❗️ Usa el comando así: /echo hola mundo');
}
});
// Lanzamos el bot
bot.launch();
console.log('🤖 Bot iniciado');
// Parada segura en caso de señal
process.once('SIGINT', () => bot.stop('SIGINT'));
process.once('SIGTERM', () => bot.stop('SIGTERM'));
▶️ Ejecutar el bot ¶
BOT_TOKEN=tu_token_aqui node bot.js
El bot ya estará listo para recibir mensajes en Telegram. Solo búscalo por el username que elegiste.
Aquí hay algo que podría hacer cambiar tu futuro.
Usamos cookies de terceros para mostrar este formulario de suscripción (que no es de publicidad ;)