Skip to content

javoerro/attendance-tgbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram Asistencia Bot

Configuración necesaria

  1. Telegram

    • Crea un bot con BotFather y obtén el token.
    • Agrega el bot al grupo privado y dale permisos para leer mensajes.
    • Obtén el chat_id del grupo (puedes usar @getidsbot o imprimirlo en el código).
  2. Microsoft Exchange (Graph API)

    • Registra una app en Azure Portal para obtener:
      • EXCHANGE_CLIENT_ID
      • EXCHANGE_CLIENT_SECRET
      • EXCHANGE_TENANT_ID
    • Da permisos para enviar correos (Mail.Send).
    • Usa el correo del remitente (EXCHANGE_SENDER) y destinatario (EXCHANGE_RECIPIENT).
  3. Configura config.json

    • Reemplaza los valores <...> por los datos reales.
  4. Instala dependencias

    • Ejecuta: pip install -r requirements.txt
  5. Ejecución

    • Corre el bot con: python main.py
  6. Zona horaria

    • El bot usa la zona horaria de Argentina (America/Argentina/Buenos_Aires).

Envío de correos: Gmail y Microsoft Exchange

El bot puede enviar correos usando dos métodos, según el dominio del remitente:

  • Gmail:
    • Si el campo EXCHANGE_SENDER termina en @gmail.com, el bot usará Gmail SMTP.
    • Debes generar una clave de aplicación en tu cuenta de Google y colocarla en el campo GMAIL_APP_PASSWORD en config.json.
    • Ejemplo de configuración:
      "EXCHANGE_SENDER": "tunombre@gmail.com",
      "GMAIL_APP_PASSWORD": "<tu_clave_de_aplicacion>"
  • Microsoft Exchange (O365):
    • Si el remitente NO es Gmail, el bot usará autenticación moderna con Microsoft Exchange/Office 365.
    • Debes completar los campos EXCHANGE_CLIENT_ID, EXCHANGE_CLIENT_SECRET, y EXCHANGE_TENANT_ID.

Nota: Si usas Gmail, no es necesario completar los campos de Exchange (puedes dejarlos vacíos o con valores genéricos).

Ejemplo de config.json

{
  "TELEGRAM_TOKEN": "<TU_TELEGRAM_BOT_TOKEN>",
  "EXCHANGE_CLIENT_ID": "<MICROSOFT_CLIENT_ID>",
  "EXCHANGE_CLIENT_SECRET": "<MICROSOFT_CLIENT_SECRET>",
  "EXCHANGE_TENANT_ID": "<MICROSOFT_TENANT_ID>",
  "EXCHANGE_SENDER": "tunombre@gmail.com",
  "EXCHANGE_RECIPIENT": "destino1@dominio.com,destino2@dominio.com",
  "GROUP_CHAT_ID": "<TELEGRAM_GROUP_CHAT_ID>",
  "TIMEZONE": "America/Argentina/Buenos_Aires",
  "GMAIL_APP_PASSWORD": "<tu_clave_de_aplicacion_gmail>"
}
  • Si usas Exchange, EXCHANGE_SENDER debe ser un correo corporativo y debes completar los campos de Exchange.
  • Si usas Gmail, EXCHANGE_SENDER debe ser tu correo @gmail.com y debes completar GMAIL_APP_PASSWORD.

Ejemplo de user_names.json

{
  "757121530": "Sebastian Martinez",
  "123456789": "Juan Perez",
  "987654321": "Maria Gomez"
}
  • El ID es el número de usuario de Telegram.
  • El valor es el nombre formal que aparecerá en el correo.
  • Si un usuario no está en este archivo, se usará su nombre de Telegram seguido del ID.

Notas

  • El bot solo funciona de lunes a viernes de 8:30 a 11:00.
  • Si a las 10:00 faltan respuestas, arrobá a los que faltan.
  • Cada día se reinician las decisiones.
  • El correo se envía solo con autorización (/enviar).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages