Cómo alojar un bot de Telegram
En esta página
Un bot de Telegram solo responde mientras su código está en ejecución. Si lo creas en tu portátil, se queda callado en cuanto el portátil entra en reposo, así que tarde o temprano todo bot necesita un lugar que siga encendido.
Esta guía cubre todo el camino: crear el bot con BotFather, elegir entre polling y webhooks, un ejemplo funcional en Python y en JavaScript, los límites y reglas que fija Telegram, y cómo mantener el bot en línea 24/7.
Paso 1: crea el bot con BotFather
- En Telegram, abre @BotFather y envía
/newbot. - Ponle al bot un nombre visible y después un nombre de usuario: de 5 a 32 caracteres, letras latinas, dígitos y guiones bajos, terminado en
bot; por ejemplo,my_shop_helper_bot. - BotFather responde con el token, que tiene este aspecto:
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Quien lo tenga controla tu bot, así que mantenlo fuera del código y no lo compartas nunca. Si se filtra, envía/tokena BotFather para obtener uno nuevo.
Otros dos comandos de BotFather que conviene conocer: /setcommands añade la lista de comandos que ven los usuarios al escribir /, y /setprivacy controla lo que el bot ve en los grupos. El modo de privacidad viene activado por defecto, así que en un grupo el bot solo recibe los comandos dirigidos a él y las respuestas a sus propios mensajes, salvo que lo hagas administrador.
¿Polling o webhooks?
Un bot recibe sus mensajes de Telegram de una de dos formas, nunca de ambas a la vez:
| Long polling | Webhook | |
|---|---|---|
| Cómo funciona | El bot pide continuamente a Telegram mensajes nuevos a través de una conexión abierta | Telegram envía cada actualización a tu dirección HTTPS |
| Requisitos | Solo acceso saliente a internet | Un dominio, un certificado válido y el puerto 443, 80, 88 u 8443 |
| Ideal para | Casi cualquier bot, y es lo más fácil de alojar | Bots con muchísimo tráfico o plataformas serverless |
Empieza con polling. No necesita dominio, ni certificado, ni puerto abierto, y todas las librerías lo admiten. Si alguna vez se configuró un webhook en el token, llama primero a deleteWebhook: el polling no funciona mientras haya un webhook activo.
Los bots con polling funcionan en el bot hosting de HytHost sin dominio ni puerto abierto que configurar: Python o Node.js desde €0.89/mes.
Ver planes de bot hostingPaso 2a: un bot en Python (python-telegram-bot)
python-telegram-bot 22 necesita Python 3.10 o posterior. Instálalo con pip install python-telegram-bot y crea bot.py:
import os
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes, MessageHandler, filters
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.message.reply_text("Hi! Send me a message and I will echo it.")
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.message.reply_text(update.message.text)
def main() -> None:
application = Application.builder().token(os.environ["TELEGRAM_TOKEN"]).build()
application.add_handler(CommandHandler("start", start))
application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
application.run_polling(allowed_updates=Update.ALL_TYPES)
if __name__ == "__main__":
main()
aiogram 3 es la otra opción popular en Python, también con Python 3.10 o posterior.
Paso 2b: un bot en JavaScript (grammY)
grammY es el framework de Telegram para Node.js que se mantiene activamente. Ejecuta npm install grammy y crea bot.js:
const { Bot } = require("grammy");
const bot = new Bot(process.env.TELEGRAM_TOKEN);
bot.command("start", (ctx) => ctx.reply("Welcome! Up and running."));
bot.on("message:text", (ctx) => ctx.reply(ctx.message.text));
process.once("SIGINT", () => bot.stop());
process.once("SIGTERM", () => bot.stop());
bot.start();
Los tutoriales antiguos usan Telegraf, que no ha publicado ninguna versión desde febrero de 2024; para un bot nuevo, grammY es la opción más segura.
Límites y reglas de Telegram para bots
Límites según las preguntas frecuentes de Telegram sobre bots:
- Aproximadamente un mensaje por segundo en un mismo chat, 20 mensajes por minuto en un grupo y unos 30 mensajes por segundo en total.
- Archivos: el bot puede enviar hasta 50 MB y descargar hasta 20 MB.
- Solo una copia del bot puede hacer polling a la vez. Una segunda recibe Conflict: terminated by other getUpdates request; usa un token aparte para las pruebas.
Reglas: las condiciones de Telegram para desarrolladores de bots prohíben el spam, los mensajes no solicitados y eludir los límites de envío. Un bot necesita una política de privacidad (si no redactas la tuya, se aplica la estándar de Telegram) y debe borrar los datos de un usuario cuando este lo pida. Automatizar una cuenta personal en lugar de un bot, el llamado userbot, es algo totalmente distinto, y Telegram bloquea las cuentas usadas para flood o spam.
Hosting de bots de Telegram en HytHost
Nuestros planes de bot hosting ejecutan bots de Telegram además de bots de Discord:
- Elige un plan y el entorno: Python para python-telegram-bot o aiogram, Node.js para grammY. Selecciona Python 3.10 o posterior, o un Node.js actual, en la pestaña Startup.
- Sube tu código con el gestor de archivos o por SFTP, junto con
requirements.txtopackage.json. - Guarda el token en un archivo
.envo en una variable de entorno, no en el código. - Inícialo. Con polling el bot no necesita dominio ni puerto abierto; el panel lo reinicia si se cae.
Qué permiten nuestras reglas: bots creados con la Bot API oficial y un token de BotFather. No se permiten: userbots que automatizan una cuenta personal, mensajes masivos no solicitados, la extracción de datos de usuarios o grupos, ni bots que descargan y redistribuyen contenido multimedia sin tener los derechos. Un bot que incumpla estas reglas se suspende.
Los planes incluyen una base de datos MySQL y copias de seguridad. ¿También estás creando un bot de Discord? Consulta cómo crear un bot de Discord.
Mantén tu bot de Telegram en línea 24/7 sin tu PC: bot hosting para Python o Node.js desde €0.89/mes, con reinicios incluidos.
Ver planes de bot hostingPreguntas frecuentes
Puedes ejecutarlo gratis en tu propio ordenador, pero se desconecta cada vez que el equipo entra en reposo o se reinicia. Los niveles gratuitos en la nube suelen pausar las apps inactivas o limitar su uso. Para un bot que siga en línea, un hosting de pago pequeño es la opción fiable.
Polling para casi cualquier bot: no necesita dominio, certificado ni puerto abierto. Los webhooks son para bots con muchísimo tráfico o plataformas serverless, y requieren HTTPS en el puerto 443, 80, 88 u 8443. Un token no puede usar ambos a la vez.
Envía /token a @BotFather y elige el bot para obtener un token nuevo; después actualízalo en todos los sitios donde se ejecute el bot. Guarda el token en una variable de entorno o en un archivo .env, nunca en código que compartas.
Hay dos copias del bot haciendo polling con el mismo token, por ejemplo una en tu PC y otra en el servidor. Detén una de ellas y usa un bot y un token aparte para las pruebas.
Muy poca. Un bot típico en Python o Node.js que responde a comandos suele funcionar bien con 512 MB; los bots que procesan imágenes o guardan muchos datos en memoria necesitan más.
Tu bot de Telegram, en línea 24/7
El bot hosting de HytHost ejecuta tu bot de Telegram en Python o Node.js con reinicios automáticos, una base de datos MySQL y copias de seguridad, desde €0.89/mes.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hours¿Te ha resultado útil esta guía?