Logotipo de TelegramTelegramen español
Bots de Telegram

¿Cómo crear un bot en Telegram mediante BotFather paso a paso?

Telegram Equipo técnico#BotFather#API de Telegram#Configuración de bots#Automatización
cómo crear un bot en Telegram, configurar bot Telegram paso a paso, BotFather tutorial, API de Telegram para bots, webhooks bot Telegram, comandos de bot Telegram, automatización con bots Telegram, solución problemas bot Telegram, envío automático de mensajes Telegram, crear bot Telegram sin programación

¿Por qué crear un bot y qué es BotFather?

Imagina que necesitas automatizar la moderación de un canal o responder preguntas frecuentes sin intervención manual. Antes de conocer los bots de Telegram, cada respuesta requería tu presencia; después de crear tu propio bot, el canal funciona solo, liberando horas de trabajo cada semana. El primer paso para lograrlo es crear un bot en Telegram mediante BotFather, el bot oficial que actúa como asistente de gestión. En esta guía recorreremos cada fase del proceso, desde la elección del nombre público hasta la configuración de comandos personalizados, explicando por qué cada ajuste importa y cuándo es mejor evitarlo.

¿Por qué crear un bot y qué es BotFather?
¿Por qué crear un bot y qué es BotFather?

Requisitos previos y primer contacto con BotFather

Para empezar solo necesitas una cuenta de Telegram activa en cualquier plataforma (Android, iOS o escritorio). BotFather es el bot oficial de Telegram para crear y gestionar bots; puedes encontrarlo buscando @BotFather en la lupa de búsqueda o accediendo directamente a t.me/botfather. No hace falta instalar nada adicional, todo se maneja a través de la interfaz de chat.

Una vez que abras el chat con BotFather, verás una lista de comandos disponibles presionando el botón de menú (en móvil) o escribiendo /start. Este es el punto de partida único tanto para usuarios de escritorio como de dispositivos móviles. La experiencia es idéntica, aunque en móvil es más cómodo usar el menú de comandos sugeridos.

💡 Consejo

Si usas Telegram Desktop, puedes escribir los comandos manualmente; en móvil, toca el icono de menú (tres líneas) para ver la lista. Ambos métodos son equivalentes.

Paso a paso: creando tu primer bot con /newbot

El proceso comienza enviando el comando /newbot a BotFather. Este comando inicia un asistente que te guiará por tres pasos:

  1. Nombre del bot: Es el nombre visible para los usuarios, por ejemplo "Asistente de Ventas". Puede contener espacios y emojis. No es único; varios bots pueden compartir nombre.
  2. Nombre de usuario: Debe terminar en bot (por ejemplo, asistente_ventas_bot). Es único en Telegram y se usa para mencionar al bot. Si el nombre ya está tomado, BotFather pedirá otro.
  3. Token de acceso: Tras confirmar los nombres, BotFather responderá con un mensaje que contiene el token, una cadena larga de caracteres. Este token es la clave API para controlar el bot.

¿Por qué es importante el token? Piensa en él como la contraseña maestra de tu bot. Cualquier aplicación que posea este token puede enviar mensajes, leer grupos y modificar la configuración del bot. Debes mantenerlo secreto y nunca compartirlo en repositorios públicos o mensajes.

Un error común es olvidar copiar el token en ese momento. Si pierdes el mensaje de BotFather, siempre puedes usar el comando /token en el mismo chat para regenerarlo (esto invalida el token anterior).

Ejemplo práctico: bot de encuestas sencillas

Supongamos que queremos un bot que recopile opiniones sobre un producto. Llamamos al bot "Encuesta Rápida" y su nombre de usuario es encuesta_rapida_bot. Tras crearlo, BotFather entrega un token como 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Con ese token podemos empezar a programar usando la API de Telegram. Para este tutorial no entraremos en código, pero más adelante veremos cómo probar la conexión.

⚠️ Advertencia

Nunca uses tokens de bots reales en ejemplos públicos. Siempre reemplázalos por marcadores como TU_TOKEN_AQUI.

Personalizando la apariencia: nombre, descripción y foto

Una vez creado el bot, conviene darle una identidad clara. BotFather ofrece varios comandos para personalizarlo:

  • /setname: Cambia el nombre visible del bot.
  • /setdescription: Define un texto corto que aparece en la página del bot.
  • /setabouttext: Añade una descripción más larga que se muestra en el perfil.
  • /setuserpic: Sube una imagen (foto de perfil) para el bot. BotFather pedirá que envíes la imagen como foto normal.

¿Por qué dedicar tiempo a estos ajustes? Los usuarios encuentran más confiable un bot con foto y descripción clara. Además, la descripción (setdescription) aparece en la lista de búsqueda y puede influir en si alguien inicia el bot.

Un límite a tener en cuenta: tanto el nombre como la descripción tienen una longitud máxima (nombre hasta 64 caracteres, descripción hasta 512 caracteres). Si tu bot maneja múltiples idiomas, deberás cambiar la descripción según el público; BotFather no permite descripciones por idioma de forma nativa, aunque puedes usar un bot intermediario.

Configuración de comandos con /setcommands

Los comandos permiten a los usuarios interactuar con el bot de forma estructurada. Por ejemplo, un bot de clima puede tener /hoy y /semana. Para definir los comandos, usa /setcommands en BotFather. Enviarás una lista en el formato:

comando1 - Descripción del comando
comando2 - Otra descripción

Cada línea representa un comando con su descripción. El separador es un guion rodeado de espacios. Los comandos deben comenzar con / y no contener espacios. La descripción aparece en el menú de comandos cuando el usuario escribe / en el chat con el bot.

Se recomienda limitar los comandos a los más útiles; un menú muy largo satura la interfaz. Si necesitas más de 100 comandos, considera subdividir en diferentes bots o usar botones inline en los mensajes.

¿Cuándo no usar comandos?

Si tu bot es principalmente conversacional (como un asistente de IA), los comandos pueden ser irrelevantes. En ese caso, es mejor manejar el texto libre y usar botones inline. Los comandos son ideales para acciones discretas: consultar saldo, buscar, iniciar un proceso.

Opciones avanzadas de BotFather: privacidad, inline y webhook

BotFather también permite ajustar comportamientos más técnicos desde el chat, sin necesidad de programar. Los más importantes son:

  • Modo privacidad: Con /setprivacy puedes controlar si el bot ve todos los mensajes en grupos o solo aquellos que lo mencionan. Por defecto está activado (solo ve mensajes con /comando o mención). Si tu bot necesita monitorear cada mensaje (por ejemplo, un filtro de spam), desactívalo.
  • Modo inline: Con /setinline habilitas que el bot pueda ser usado escribiendo su nombre de usuario seguido de una consulta en cualquier chat. Por ejemplo, un bot de GIFs permite buscar inline. Requiere implementación del lado del código.
  • Permiso de uniones a grupos: Con /setjoingroup decides si los usuarios pueden añadir tu bot a grupos. Si tu bot no está diseñado para grupos, es mejor desactivarlo para evitar ruido.
  • Webhook: El comando /setwebhook no existe en BotFather; esta configuración se realiza mediante la API. Explicaremos más adelante.

¿Por qué modificar el modo privacidad? Si desactivas la privacidad, el bot recibirá todos los mensajes de grupo, lo que aumenta el tráfico. Para la mayoría de los bots, mantener la privacidad activada es suficiente. Cámbiala solo si realmente necesitas procesar cada mensaje.

Obteniendo actualizaciones: long polling vs webhook

Una vez creado el bot, necesitas que tu aplicación reciba los mensajes que los usuarios envían. Hay dos métodos principales:

  1. Long polling: Tu programa pregunta constantemente al servidor de Telegram si hay nuevas actualizaciones, usando el método getUpdates. Es simple de implementar y funciona bien para bots personales o de prueba.
  2. Webhook: Telegram envía automáticamente las actualizaciones a una URL que tú proporcionas. Es más eficiente y recomendado para bots en producción. Se configura llamando al método setWebhook con un endpoint HTTPS.

La elección depende de tu situación. Si tu bot está en un servidor público con dominio y certificado SSL, el webhook es superior. Si solo pruebas localmente o en un servidor sin certificado, el long polling es más sencillo.

Un error común es tener ambos métodos activos; Telegram rechazará las actualizaciones si detecta polling y webhook simultáneos. Para cambiarte de uno a otro, primero borra el webhook con deleteWebhook y luego inicia el polling, o viceversa.

Ejemplo: probar el token con polling simple

Puedes verificar que tu bot funciona usando una herramienta como curl desde la terminal:

curl https://api.telegram.org/bot<TU_TOKEN>/getMe

Debería devolver un JSON con la información del bot. Si ves un error 401, el token no es válido (revisa que esté completo). Luego, para probar actualizaciones, puedes usar:

curl https://api.telegram.org/bot<TU_TOKEN>/getUpdates

Primero envía un mensaje al bot desde otra cuenta; luego ejecuta getUpdates para verlo. Si no aparece, verifica que el bot no tenga el modo privacidad bloqueando mensajes en grupos (en chats privados siempre funciona).

Ejemplo: probar el token con polling simple
Ejemplo: probar el token con polling simple

Errores frecuentes y solución de problemas

A continuación algunos problemas comunes al crear y configurar bots, con posibles causas y soluciones:

Síntoma Posible causa Solución
El bot no responde a comandos No se ha configurado correctamente el webhook o polling Verifica con getUpdates si el bot recibe mensajes. Revisa la URL del webhook o el script de polling.
Token inválido El token fue regenerado o tiene caracteres mal copiados Solicita un nuevo token con /token en BotFather. Copia exactamente, incluyendo los dos puntos.
El bot no aparece en búsquedas El bot no tiene foto de perfil o descripción Usa /setuserpic y /setdescription para mejorarlo. Espera unos minutos para que se propague.
Error 409 Conflict al usar webhook Otro proceso está usando polling Detén el polling y borra el webhook con deleteWebhook antes de configurarlo de nuevo.

🧪 Observación empírica

En pruebas, al usar un webhook con certificado autofirmado, algunos clientes de escritorio tardan más en recibir actualizaciones. Se recomienda usar un certificado de confianza pública o configurar correctamente la cadena de certificados.

Mejores prácticas al administrar tu bot

Tras crear tu bot, considera estas recomendaciones para mantenerlo seguro y eficiente:

  • Rotar el token periódicamente: Usa /token para generar uno nuevo si sospechas de filtración. El token anterior deja de funcionar inmediatamente.
  • No almacenes el token en código fuente: Usa variables de entorno o un archivo de configuración fuera del repositorio.
  • Limita el acceso: Si el bot se usa internamente, configura comandos inline solo para ciertos usuarios mediante la API.
  • Documenta los comandos: Mantén actualizada la lista de comandos en BotFather para que los usuarios sepan qué pueden hacer.
  • Monitorea errores: Implementa logs en tu servidor para capturar excepciones al llamar a la API de Telegram.

Ninguna práctica es universal: si tu bot es solo un experimento personal, algunos pasos pueden omitirse. Sin embargo, para bots públicos o corporativos, estas medidas reducen riesgos.

Diferencias entre plataformas: móvil vs escritorio

BotFather funciona de forma idéntica en todas las plataformas. La única diferencia es la interfaz de navegación de comandos: en escritorio, escribes manualmente con la barra / y autocompletado; en móvil, puedes tocar el botón de menú (tres líneas) para ver la lista de comandos de BotFather. Esa lista muestra todos los comandos disponibles, pero no incluye aquellos de configuración avanzada como /setprivacy; en móvil deberás escribirlos igualmente.

A la hora de subir una foto de perfil, en móvil puedes elegirla directamente de la galería; en escritorio debes arrastrar o seleccionar el archivo. El proceso es sencillo en ambos casos.

Escenarios aplicables y cuándo no usar BotFather

BotFather es la herramienta adecuada para la creación y configuración básica de bots en Telegram. Es aplicable si:

  • Necesitas crear uno o varios bots para distintos fines (moderación, atención al cliente, juegos).
  • Quieres ajustar rápidamente el nombre, descripción, foto o comandos sin programar.
  • Estás empezando con la API de Telegram y quieres obtener el token fácilmente.

Sin embargo, no es la herramienta para:

  • Gestionar múltiples bots a escala (deberías usar scripts con la API, aunque BotFather no tiene límite documentado).
  • Configurar webhooks (eso se hace con la API, no con BotFather).
  • Ver estadísticas de uso (BotFather no ofrece métricas; usa la API o bots de terceros con precaución).

Preguntas frecuentes

¿Puedo cambiar el nombre de usuario de mi bot después de crearlo?

Sí, usa el comando /setusername en BotFather. El nuevo nombre de usuario debe terminar en 'bot' y no estar ocupado. Ten en cuenta que cambiar el nombre de usuario modifica la URL de invitación (t.me/nuevo_bot).

¿Qué hago si pierdo el token de mi bot?

Usa el comando /token en el chat con BotFather. Este comando te mostrará el token actual y te permitirá generar uno nuevo (el anterior quedará inválido).

¿Cuántos bots puedo crear con una cuenta de Telegram?

No hay un límite oficial documentado. Puedes crear tantos bots como necesites, cada uno con su propio token. Eso sí, gestionar muchos bots puede volverse complejo sin automatización.

Mi bot no responde a mensajes en grupos a pesar de tener permisos. ¿Qué ocurre?

Probablemente el modo privacidad está activado. Usa /setprivacy en BotFather y selecciona 'Disable' para que el bot lea todos los mensajes. Luego, asegúrate de que el bot sea administrador del grupo (si requiere eliminar mensajes).

Conclusión y próximos pasos

Crear un bot en Telegram con BotFather es el primer paso hacia la automatización de interacciones. Has aprendido a obtener el token, personalizar la identidad del bot, configurar comandos y elegir entre polling y webhook. Ahora tienes los fundamentos para empezar a programar la lógica de tu bot usando un lenguaje como Python (con la librería python-telegram-bot), Node.js o cualquier otro que consuma la API REST de Telegram.

El siguiente paso recomendado es implementar un bot simple que responda a un comando, por ejemplo /start. Prueba la conexión con getMe y luego programa el webhook o el polling. Recuerda mantener el token seguro y documentar los comandos para tus usuarios.

Con la práctica, podrás añadir funciones como botones inline, pagos, integración con APIs externas y mucho más. Telegram no deja de crecer, y los bots son una de sus herramientas más potentes.