¿Qué es un bot de Telegram para alertas personalizadas?
Un bot de Telegram es un programa que se ejecuta dentro de la plataforma y puede responder a comandos, enviar mensajes o realizar acciones automatizadas. Configurar un bot para alertas personalizadas te permite recibir notificaciones específicas —por ejemplo, cuando el precio de una criptomoneda alcanza un umbral, cuando tu servidor se queda sin espacio, o cuando un canal que sigues publica contenido con ciertas palabras clave— directamente en tu chat, sin depender de aplicaciones externas ni de las notificaciones genéricas de Telegram. Este artículo te guiará por el proceso completo, desde la creación del bot con BotFather hasta la implementación de la lógica de alerta, explicando las compensaciones entre diferentes enfoques y cómo evitar problemas comunes.
La ventaja principal de un bot personalizado frente a las soluciones prefabricadas es el control total: tú decides qué desencadena la alerta, con qué frecuencia se envía y cómo se formatea el mensaje. No obstante, requiere ciertos conocimientos básicos de programación o el uso de servicios de terceros como IFTTT o Zapier. A lo largo del artículo, presentaremos rutas tanto para quienes prefieren escribir su propio código como para quienes buscan una solución sin programación, de modo que puedas elegir la que mejor se adapte a tus habilidades y recursos.
Requisitos previos
Antes de empezar, necesitarás:
- Una cuenta de Telegram activa en tu dispositivo (Android, iOS o escritorio).
- Acceso a un cliente de Telegram para interactuar con BotFather.
- Si optas por la ruta de programación, necesitarás un entorno donde ejecutar código (tu PC, un servidor o un servicio cloud como AWS Lambda).
- Conocimientos básicos de la línea de comandos y, dependiendo del lenguaje, de Python, Node.js o similares.
Para la ruta sin código, una cuenta en un servicio de automatización como IFTTT o Zapier (algunos planes gratuitos permiten conectar Telegram). Estos servicios te ahorran la escritura de código, pero imponen límites en la cantidad de automatizaciones y en la frecuencia de las alertas.
Paso a paso: Crear el bot con BotFather
BotFather es el bot oficial de Telegram para gestionar bots. Sigue estos pasos:
- Abre Telegram y busca @BotFather. Inicia el chat y presiona Start o escribe
/start. - Envía el comando
/newbot. BotFather te pedirá un nombre para tu bot (por ejemplo, Alertas de Precios) y luego un nombre de usuario único que termine en “bot” (por ejemplo, PreciosAlertasBot). - Si el nombre de usuario está disponible, recibirás un mensaje con el token de acceso a la API. Guárdalo en un lugar seguro; es la llave que permitirá a tu código controlar el bot.
- Opcional: puedes personalizar la foto de perfil del bot con
/setuserpic, la descripción con/setdescriptiony los comandos con/setcommands. Por ejemplo, definealert - Configurar alertapara que los usuarios vean una ayuda contextual.
Una vez creado, ya puedes hablar con tu bot. Búscalo por su nombre de usuario y envía /start para inicializar la conversación. Por ahora no hará nada, porque falta la parte del código que procese los mensajes. A continuación elegirás cómo dotarlo de inteligencia.
Elegir la lógica de alertas: programación vs. servicios visuales
Aquí es donde debes decidir cómo conectar tu fuente de datos con el bot. Presentamos dos enfoques principales con sus respectivas ventajas y limitaciones.
Enfoque 1: Programar tu propio bot
Es la opción más flexible. Puedes escribir un script en Python (usando la biblioteca python-telegram-bot), Node.js (node-telegram-bot-api), o cualquier otro lenguaje. El script se ejecutará continuamente (o se activará por un programador) y enviará mensajes a través de la API cuando se cumplan las condiciones. Por ejemplo:
import requests
import time
TOKEN = 'tu_token_aqui'
CHAT_ID = 'tu_chat_id' # Obtenlo enviando un mensaje a @userinfobot
def send_alert(mensaje):
url = f'https://api.telegram.org/bot{TOKEN}/sendMessage'
data = {'chat_id': CHAT_ID, 'text': mensaje}
requests.post(url, data=data)
while True:
# Ejemplo: verificar precio de Bitcoin cada 5 minutos
precio = obtener_precio()
if precio > 50000:
send_alert(f'¡Bitcoin superó $50,000! Precio actual: ${precio}')
time.sleep(300)Nota: obtener_precio() es una función hipotética que consulta una API pública. El script debe ejecutarse en un servidor (puede ser tu computadora encendida las 24 horas o un servicio en la nube). Para obtener el CHAT_ID, envía un mensaje al bot @userinfobot y te devolverá tu ID numérico.
Ventajas: control total, sin límites de proveedores externos, posibilidad de implementar lógica compleja y manejar múltiples fuentes. Desventajas: requiere mantenimiento del servidor, conocimientos de programación, gestión de errores y atención a la seguridad del token.
Enfoque 2: Usar servicios de automatización (IFTTT, Zapier)
Servicios como IFTTT (ifttt.com) y Zapier (zapier.com) ofrecen conectores predefinidos para Telegram. Normalmente, puedes crear un “applet” (en IFTTT) o un “Zap” (en Zapier) que, cuando se cumpla una condición (por ejemplo, nueva fila en una hoja de cálculo, precio de un activo, correo electrónico con asunto específico), envíe un mensaje a tu bot. La configuración típica:
- Elige el servicio de activación (trigger): Gmail, RSS, CoinMarketCap, etc.
- Elige la acción (action): Telegram → enviar mensaje.
- Conecta tu cuenta de Telegram: te pedirá el token de tu bot o escanear un código QR.
- Personaliza el texto del mensaje usando variables del trigger.
Ventajas: no requiere programación, fácil de configurar, mantenimiento mínimo. Desventajas: menos flexibilidad, límites en planes gratuitos (por ejemplo, IFTTT permite 3 applets gratis), dependencia de un tercero y posible latencia adicional en la entrega de la alerta.
Diferencias de plataforma en la recepción de alertas
El proceso de envío de alertas es independiente del cliente: el bot envía mensajes a un chat (que puede ser tu chat personal, un grupo o un canal). La recepción varía ligeramente según el dispositivo:
- Android/iOS: Recibirás notificaciones push estándar de Telegram si el sonido y las notificaciones están habilitados. Si el chat está silenciado, no sonará, aunque el mensaje se almacenará en el historial.
- Escritorio (Windows, macOS, Linux): Similar, pero debes tener la aplicación abierta o con notificaciones del sistema activadas. En la versión web puede haber un pequeño retraso debido al polling.
No hay configuraciones especiales en el bot para priorizar notificaciones. Puedes usar el método sendMessage con parámetros como disable_notification=True para enviar silenciosamente, si no quieres interrumpir en momentos concretos.
Configurar alertas basadas en condiciones complejas
Si deseas que el propio usuario configure las alertas desde el chat (por ejemplo, “avísame cuando el BTC supere X”), tu bot debe manejar comandos y almacenar preferencias. Un flujo típico con BotFather:
- Define comandos con
/setcommandsen BotFather:setalert - Configurar una alerta,listalerts - Ver alertas activas. - En tu código, captura el mensaje
/setalert, pide al usuario que ingrese la condición (por ejemplo, “precio BTC > 50000”), guarda esa regla en una base de datos local o en memoria. - Ejecuta un bucle que verifique periódicamente todas las reglas activas y envíe alertas cuando se cumplan.
Este modelo es más complejo pero permite que múltiples usuarios personalicen sus alertas. Para simplificar, puedes comenzar con alertas fijas en el código y más tarde migrar a una arquitectura con almacenamiento persistente, usando archivos JSON o una base de datos ligera como SQLite.
Manejo de errores y límites de la API
La API de Telegram tiene límites de rate (aproximadamente 30 mensajes por segundo por chat, aunque el límite real puede variar). Si envías muchas alertas rápidamente, puedes recibir un error 429. Implementa un mecanismo de reintento con espera exponencial. Además, tu bot debe gestionar:
- Token inválido: Si el token es incorrecto, la API devuelve 401. Verifica que lo hayas copiado bien y que no tenga espacios adicionales.
- Chat no encontrado: Asegúrate de que el chat_id sea correcto y que el usuario haya iniciado el bot (enviado
/start). Si el usuario bloquea al bot, el envío fallará silenciosamente. - Mensajes demasiado largos: La API limita a 4096 caracteres; divide los mensajes largos en partes y envíalos secuencialmente.
Para probar, puedes enviar un mensaje simple con curl desde la terminal:
curl -X POST https://api.telegram.org/bot<TOKEN>/sendMessage -d chat_id=<CHAT_ID> -d text="Hola, mundo"
