
Introducción: ¿Por qué crear un bot en Telegram con BotFather?
Los bots de Telegram son aplicaciones programables que pueden automatizar tareas, moderar grupos, enviar notificaciones o interactuar con APIs externas. Crear un bot con BotFather es el primer paso para cualquiera que desee aprovechar la plataforma de mensajería sin necesidad de ser un desarrollador experto. BotFather, el bot oficial de Telegram para la creación y gestión de bots, ha evolucionado junto con la plataforma: a principios de 2026, su interfaz sigue siendo estable, pero se han añadido opciones para gestionar la privacidad del grupo, ajustar la capacidad de descarga de archivos y configurar dominios para webhooks. Este artículo cubre el proceso completo, desde los requisitos previos hasta la puesta en producción, incluyendo consideraciones de seguridad y límites que debes conocer. El texto está organizado para que puedas seguirlo en tu dispositivo actual, ya sea Android, iOS o escritorio. Cuando existan diferencias significativas entre plataformas, se indicarán explícitamente. Además, se incluyen ejemplos concretos para que entiendas no solo cómo hacerlo, sino por qué ciertas decisiones importan.
Requisitos previos
Antes de comenzar, asegúrate de tener lo siguiente:
- Una cuenta activa en Telegram (puedes registrarte con tu número de teléfono).
- La aplicación de Telegram actualizada a la última versión disponible al momento de escribir este artículo (verifica en tu tienda de aplicaciones o en telegram.org).
- Acceso a internet estable.
- Si planeas programar el bot, conocimientos básicos de un lenguaje como Python, Node.js o PHP, o utilizar una plataforma sin código (no-code).
No es necesario tener experiencia previa con bots; BotFather te guiará mediante comandos. Sin embargo, familiarízate con la interfaz de comandos de Telegram: en cualquier chat, escribe / seguido del comando. Con estos elementos listos, estarás preparado para el primer paso.
Paso 1: Iniciar BotFather
BotFather es el bot oficial que gestiona la creación y configuración de otros bots. Para iniciarlo:
- En la barra de búsqueda de Telegram, escribe
@BotFather. - Selecciona el primer resultado: un bot con un avatar que muestra un padre con un bigote.
- Presiona Iniciar o envía el comando
/start.
BotFather responderá con una lista de comandos disponibles. Si no ves la lista completa, escribe /help. Observa que en dispositivos móviles (Android/iOS) la interfaz muestra un menú con los comandos principales al escribir /, mientras que en escritorio puedes presionar la tecla / para desplegarlos.
Tip: Si usas Telegram Desktop o Web, es más rápido escribir manualmente los comandos. En móvil, usa el menú predictivo para evitar errores tipográficos.
Paso 2: Crear un nuevo bot
Para crear un bot, envía el comando /newbot a BotFather. Este comando inicia un asistente de creación que te pedirá dos datos:
2.1 Nombre del bot
El nombre es el que verán los usuarios en la lista de contactos y en los mensajes. Puede contener espacios y caracteres especiales. Ejemplo: Mi Bot de Asistencia. No hay límite estricto, pero se recomienda que sea descriptivo.
2.2 Nombre de usuario (username)
El nombre de usuario debe ser único en toda la plataforma y debe terminar en bot (por ejemplo, MiAsistenteBot o mi_asistente_bot). Solo puede contener letras latinas, números y guiones bajos, sin espacios. Si el nombre de usuario ya está en uso, BotFather te lo indicará y deberás probar con otro.
Una vez aceptado, BotFather responderá con un mensaje que contiene:
- El enlace directo a tu bot:
t.me/nombredetubot. - El token de acceso (una cadena alfanumérica larga). Este token es la contraseña de tu bot; nunca debes compartirla públicamente.
Advertencia: Si pierdes el token o crees que ha sido comprometido, puedes regenerarlo con el comando
/tokenen BotFather más adelante.
Guarda el token de forma segura; lo necesitarás para conectar tu bot al código.
Paso 3: Configurar la descripción y foto de perfil
Un bot profesional debe tener una descripción clara y una imagen representativa. Usa los siguientes comandos con BotFather:
- /setdescription: Permite establecer un texto de hasta 512 caracteres que aparece al lado del nombre del bot en la lista de contactos. Ejemplo: Bot para recibir notificaciones del clima cada mañana.
- /setabouttext: Texto corto que se muestra en la información del bot (hasta 120 caracteres).
- /setuserpic: Sube una imagen de perfil. Acepta formatos PNG o JPG; BotFather la redimensionará a cuadrado.
La foto de perfil es importante para la confianza del usuario. Desde la versión estable de 2025, Telegram permite que los bots tengan imágenes animadas (en formato TGS), pero solo mediante la API oficial, no desde BotFather. Si deseas una animación, deberás usar el método setChatPhoto desde el código. Una descripción bien redactada y una imagen adecuada mejoran la primera impresión de tu bot.
Paso 4: Configurar los comandos del bot
Los comandos permiten a los usuarios interactuar con el bot de forma predecible. Para definirlos, usa /setcommands y luego envía una lista con el formato:
comando1 - Descripción del comando1 comando2 - Descripción del comando2 comando3 - Descripción del comando3
Cada línea debe comenzar con el comando en minúsculas, sin el slash. Por ejemplo:
start - Inicia el bot help - Muestra ayuda clima - Obtén el clima actual
La descripción máxima es de 256 caracteres. Los comandos aparecerán automáticamente en el menú de entrada del usuario al escribir /. No definas comandos que no vayas a implementar, ya que el bot no los reconocerá y mostrará error. Planifica los comandos según las funciones que realmente ofrecerás.
Paso 5: Configurar la privacidad del bot (modo privacidad en grupos)
Por defecto, los bots en grupos no reciben todos los mensajes, solo los que comienzan con un comando (como /comando), o cuando el bot es mencionado mediante @username. Si necesitas que tu bot lea todos los mensajes del grupo (por ejemplo, para un moderador automático), debes desactivar el modo de privacidad. Esto se hace con el comando /setprivacy en BotFather: elige tu bot y luego selecciona Disable (Deshabilitar).
Consideración de seguridad: Deshabilitar la privacidad permite que el bot acceda a todos los mensajes del grupo. Asegúrate de que el bot sea de confianza y que no almacene o filtre información sensible sin permiso. Telegram recomienda mantener la privacidad activada a menos que sea estrictamente necesario.
Para bots que solo responden a comandos, mantener el modo privacidad es la opción más segura. Evalúa cuidadosamente si tu funcionalidad realmente requiere acceso completo a los mensajes.
Paso 6: Conectar el bot a tu código
Una vez creado, el bot necesita un servidor que procese las solicitudes. Existen dos mecanismos principales: polling y webhook. La elección depende de tu infraestructura y del volumen de uso esperado.
6.1 Polling (sondeo)
El bot consulta constantemente los servidores de Telegram para ver si hay nuevos mensajes. Es sencillo de implementar, ideal para bots personales o de baja escala. Ejemplo en Python con la librería python-telegram-bot:
from telegram.ext import Application, CommandHandler
def start(update, context):
update.message.reply_text('¡Hola! Soy un bot.')
app = Application.builder().token('TU_TOKEN').build()
app.add_handler(CommandHandler('start', start))
app.run_polling()
No necesitas un servidor público; puedes ejecutarlo en tu PC, pero debe estar encendido mientras quieras que el bot funcione. Este método es adecuado para pruebas locales o bots con poco tráfico.
6.2 Webhook (recomendado para producción)
Telegram envía las actualizaciones directamente a una URL HTTPS pública que tú configures. Es más eficiente y escalable. Para ello, necesitas:
- Un dominio con certificado SSL válido (no self-signed).
- Un servidor web (por ejemplo, Nginx + uWSGI, o servicios como Vercel, AWS Lambda).
- Configurar el webhook mediante la API:
https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://tudominio.com/webhook.
Puedes verificar el webhook con:
https://api.telegram.org/bot<TOKEN>/getWebhookInfo
Si el webhook falla, Telegram reintentará el envío durante varias horas. Consulta la documentación oficial para límites de reintentos. Para producción, el webhook es la opción recomendada por su eficiencia y menor latencia.
Paso 7: Probar y depurar el bot
Antes de liberar tu bot, pruébalo en un grupo privado o contigo mismo. Errores comunes:
- Token inválido: Verifica que no incluiste espacios ni caracteres extra. Si lo has expuesto, regenéralo con /token en BotFather.
- Webhook no responde: Asegúrate de que tu servidor acepte conexiones HTTPS en el puerto 443 y que la URL devuelva 200 OK. Usa herramientas como
curlpara probar. - Bot no aparece en grupos: Debes agregar el bot manualmente usando el enlace
t.me/nombredetubot?startgroup=true. - Comandos no funcionan: Revisa que hayas implementado los handlers correctamente y que los nombres de comando coincidan exactamente (sin barra inclinada en el código).
Para depurar, puedes habilitar logs en tu servidor. Por ejemplo, en Python añade logging.basicConfig(level=logging.INFO). Realizar pruebas sistemáticas te ayudará a detectar problemas antes de que los usuarios los encuentren.
Gestión avanzada del bot con BotFather
Además de la creación básica, BotFather ofrece comandos para administrar bots de forma remota:
- /mybots: Lista todos tus bots. Puedes seleccionar uno y ver opciones como Edit Bot para cambiar nombre, descripción, foto, etc.
- /token: Regenerar el token sin perder el bot existente (los usuarios no se ven afectados, solo el token cambia).
- /revoke: Revoca el token actual y genera uno nuevo. Útil si lo has compartido accidentalmente.
- /deletebot: Elimina permanentemente el bot y su nombre de usuario. No se puede deshacer.
- /setinline: Permite que el bot funcione en modo inline (los usuarios pueden @mibot y luego un texto para obtener resultados sin salir del chat). Requiere configuración adicional en código.
- /setjoingroups: Determina si el bot puede ser añadido a grupos. Puedes desactivarlo para bots estrictamente personales.
- /setprivacy: Ya mencionado, controla la visibilidad de mensajes en grupos.
Tip: Usa
/setinlinesolo si tu bot está diseñado para búsquedas en línea (por ejemplo, un bot de GIF o de búsqueda de artículos). El modo inline tiene límites de resultados y latencia.
Estos comandos te permiten mantener el control total de tus bots sin salir de Telegram, facilitando la gestión de múltiples bots desde un solo lugar.
Seguridad del token del bot
El token es la llave maestra de tu bot. Quien lo posea puede controlar completamente el bot: leer mensajes, enviar mensajes, modificar comandos, etc. Por tanto:
- Nunca incluyas el token en repositorios públicos de código. Usa variables de entorno.
- Si trabajas en equipo, limita el acceso al token solo a quienes realmente lo necesiten.
- Si sospechas que el token ha sido filtrado, regenéralo inmediatamente con
/revokeen BotFather. Luego actualiza tu código. - No compartas el token por mensajes de texto no cifrados. Prefiere canales seguros.
Además, Telegram permite limitar el alcance del token a ciertas direcciones IP mediante allowed_updates en la API, pero esto no elimina la necesidad de proteger el token. Mantener el token seguro es una responsabilidad continua.
Límites y restricciones oficiales
Telegram impone ciertos límites para los bots, que pueden cambiar con el tiempo. Basado en documentación oficial y observaciones empíricas:
- Rate limiting: Un bot no puede enviar más de 30 mensajes por segundo a un mismo chat (por observación empírica; el límite real puede variar). Para grupos grandes, se recomienda espaciar los mensajes.
- Mensajes a grupos: El bot debe ser administrador para enviar mensajes a grupos con más de 50 miembros (a menos que el grupo lo permita explícitamente).
- GetterUpdates: Si usas polling, el tiempo máximo de espera (long polling) es de 50 segundos.
- Webhook: La URL debe ser HTTPS y no puede tener puertos no estándar (solo 443, 80, 88, 8443). El certificado debe ser emitido por una CA confiable.
- Inline queries: Máximo 50 resultados por consulta.
Estos límites están diseñados para proteger la plataforma de abusos. Si tu bot requiere superarlos, debes contactar a Telegram mediante el programa de partners o solicitar exenciones, pero no hay garantía de aprobación. Es importante diseñar tu bot dentro de estos límites para evitar bloqueos.
Ejemplo práctico: Bot de clima simple
Imaginemos que deseas un bot que dé el clima de una ciudad cuando el usuario envíe /clima Madrid. El proceso sería:
- Crear el bot con BotFather (nombre: ClimaBot, username: ClimaSimpleBot).
- Definir comando
/climacon descripción. - Implementar el handler en Python que recibe el texto después del comando, consulta una API de clima gratuita (ej. OpenWeatherMap) y responde con la temperatura y condición.
- Probar enviando
/clima Madrid. - Configurar el bot en un grupo: añadirlo y desactivar privacidad si se desea que responda a mensajes sin comando (por ejemplo, detectar la palabra "clima" en cualquier mensaje).
Este ejemplo ilustra el flujo completo, desde la creación hasta la funcionalidad básica. A partir de aquí, puedes extenderlo con más comandos o integraciones.
Tendencias futuras / Expectativas de versión
Telegram continúa evolucionando su plataforma de bots. Se espera que en futuras versiones se mejore la gestión de webhooks, se aumenten los límites de rate limiting para bots verificados y se introduzcan nuevas herramientas de análisis directamente en BotFather. Además, la adopción de bots con inteligencia artificial y procesamiento de lenguaje natural está creciendo, lo que abre posibilidades para interacciones más naturales. Mantente atento a las actualizaciones oficiales y adapta tu bot para aprovechar las nuevas capacidades.