API de telegram para mis proyectos
Find a file
2026-07-04 20:51:32 -06:00
.dockerignore cambios docker 2026-07-04 20:47:16 -06:00
.gitignore se evita subir db 2026-07-04 20:51:32 -06:00
db.py cambios docker 2026-07-04 20:47:16 -06:00
docker-compose.yml cambios docker 2026-07-04 20:47:16 -06:00
Dockerfile cambios docker 2026-07-04 20:47:16 -06:00
LICENSE Initial commit 2026-07-04 19:38:07 -06:00
main.py primer commit 2026-07-04 19:45:20 -06:00
README.md cambios docker 2026-07-04 20:47:16 -06:00
repository.py primer commit 2026-07-04 19:45:20 -06:00
requirements.txt primer commit 2026-07-04 19:45:20 -06:00
schemas.py primer commit 2026-07-04 19:45:20 -06:00
telegram_client.py primer commit 2026-07-04 19:45:20 -06:00

Telegram Sender API (MVP)

API independiente para enviar mensajes de Telegram usando multiples bots y multiples chats/canales.

1) Instalacion

cd API
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env

2) Ejecutar

cd API
source .venv/bin/activate
uvicorn main:app --reload --host 0.0.0.0 --port 8000

3) Flujo minimo

  1. Registrar bot en POST /bots
  2. Registrar chat en POST /chats
  3. Vincular bot-chat en POST /bindings
  4. Enviar mensaje en POST /send

Si definiste API_KEY en .env, envia el header x-api-key en todas las rutas protegidas.

4) Ejemplos con curl

Registrar bot:

curl -X POST http://localhost:8000/bots \
  -H "Content-Type: application/json" \
  -H "x-api-key: TU_API_KEY" \
  -d '{"name":"bot_motiva","token":"TU_TELEGRAM_BOT_TOKEN","is_active":true}'

Registrar chat/canal:

curl -X POST http://localhost:8000/chats \
  -H "Content-Type: application/json" \
  -H "x-api-key: TU_API_KEY" \
  -d '{"name":"canal_general","chat_id":"-1001234567890","chat_type":"channel","is_active":true}'

Vincular:

curl -X POST http://localhost:8000/bindings \
  -H "Content-Type: application/json" \
  -H "x-api-key: TU_API_KEY" \
  -d '{"bot":"bot_motiva","chat":"canal_general"}'

Enviar:

curl -X POST http://localhost:8000/send \
  -H "Content-Type: application/json" \
  -H "x-api-key: TU_API_KEY" \
  -d '{"bot":"bot_motiva","chat":"canal_general","mensaje":"Hola desde la API","parse_mode":"Markdown"}'

5) Notas

  • SQLite se crea automaticamente en API/data/telegram_api.db.
  • Este MVP guarda tokens en texto plano en SQLite. Siguiente paso recomendado: cifrado de tokens.
  • La API expone Swagger en http://localhost:8000/docs.

6) Despliegue con Docker Compose (OMV)

Archivos incluidos para despliegue:

  • Dockerfile
  • docker-compose.yml

Pasos recomendados en OMV:

  1. Copia el proyecto a una carpeta local del NAS (no a una ruta SMB montada desde otro equipo).
  2. Ajusta .env con tu API_KEY.
  3. En la UI de Compose de OMV, usa el docker-compose.yml del proyecto.
  4. Levanta el stack.

El compose ya deja persistencia de SQLite en ./data del proyecto dentro del NAS y fuerza:

  • TELEGRAM_API_DB_PATH=/app/data/telegram_api.db

Si quieres cambiar el puerto externo, edita en docker-compose.yml la linea:

  • "8000:8000"

Ejemplo para exponer 8080:

  • "8080:8000"