Bot puente para conversar desde Telegram con un agente de Microsoft Copilot Studio usando Direct Line.
El proyecto recibe mensajes desde un bot de Telegram, los envía al agente publicado en Copilot Studio mediante el secreto de Direct Line y devuelve la respuesta al mismo chat de Telegram.
Integración sencilla entre Telegram y un agente de Microsoft Copilot Studio. Usa Python, Telegram Bot API y Direct Line para exponer un chatbot conversacional que puede montarse después en otras aplicaciones como React, Angular, Astro u otros frontends.
- El usuario escribe al bot de Telegram creado con BotFather.
- El script lee los mensajes usando polling.
- Cada mensaje se envía al agente de Copilot Studio mediante Direct Line.
- La respuesta del agente se formatea para Telegram con
parse_modeHTML. - El bot responde en el mismo chat.
- El comando
/resetreinicia la conversación con el agente.
- Python 3.10 o superior.
- Un bot de Telegram creado en BotFather.
- Un agente de Microsoft Copilot Studio publicado con Direct Line.
- Un secreto válido de Direct Line.
Copia .env.example como .env y completa los valores:
DIRECTLINE_SECRET=tu_secreto_directline
TELEGRAM_BOT_TOKEN=tu_token_de_botfather
COPILOT_USER_ID=luisDIRECTLINE_SECRET es el secreto del canal Direct Line del agente.
TELEGRAM_BOT_TOKEN es el token del bot creado con BotFather.
COPILOT_USER_ID es un identificador base para el usuario enviado a Copilot. El script le agrega el chat_id de Telegram.
Crear entorno virtual:
python -m venv .venvActivar entorno en Git Bash:
source .venv/Scripts/activateInstalar dependencias:
pip install -r requirements.txtpython telegram_haze_bot.pyTambién puedes ejecutarlo sin activar el entorno:
.venv/Scripts/python telegram_haze_bot.py/reset
Reinicia la conversación actual con el agente de Copilot Studio.
Este proyecto está pensado para un agente de Copilot Studio expuesto mediante Direct Line usando secreto.
Si el agente requiere autenticación Microsoft interactiva, el flujo necesita un token válido de Microsoft y una integración de autenticación adicional. Para este caso se usa el secreto de Direct Line para permitir que el agente sea consumido por apps externas como Telegram, React, Angular o Astro.
El bot envía mensajes a Telegram con:
parse_mode = "HTML"Por eso se recomienda que las instrucciones internas del agente usen solo HTML compatible con Telegram, especialmente etiquetas simples como <b> y </b>.
No subas .env al repositorio.
Si un token de Telegram o secreto de Direct Line se expone accidentalmente, revócalo y genera uno nuevo.