API REST para publicar historias (stories) en Telegram de forma automatizada usando Telethon y FastAPI.
Este proyecto proporciona una API REST que permite publicar historias en Telegram mediante una interfaz HTTP. Utiliza Telethon para interactuar con la API de Telegram y FastAPI como framework web para exponer los endpoints.
- 📸 Publicación de historias en Telegram desde una URL de imagen
- 🎨 Soporte para agregar texto/caption a las historias
- 🔐 Autenticación mediante API ID y API Hash de Telegram
- 🚀 API REST simple y fácil de usar
- 💚 Endpoint de health check para monitoreo
- Python 3.7+
- API ID y API Hash de Telegram (obtenerlos en my.telegram.org)
- Cuenta de Telegram con permisos para publicar historias
- Clona el repositorio:
git clone <repository-url>
cd tg-stories- Crea un entorno virtual:
python -m venv venv
source venv/bin/activate # En Windows: venv\Scripts\activate- Instala las dependencias:
pip install -r requirements.txt- Crea un archivo
.envcon tus credenciales:
API_ID=tu_api_id
API_HASH=tu_api_hash
- Inicia el servidor:
uvicorn server:app --reload- Publica una historia mediante POST a
/story:
curl -X POST http://localhost:8000/story \
-H "Content-Type: application/json" \
-d '{
"imageUrl": "https://ejemplo.com/imagen.jpg",
"caption": "Texto opcional para la historia"
}'Publica una historia en Telegram.
Parámetros:
imageUrl(requerido): URL de la imagen a publicarcaption(opcional): Texto que acompañará la historia
Respuesta exitosa:
{
"ok": true,
"result": "..."
}Verifica el estado del servidor.
Respuesta:
{
"ok": true,
"status": "running"
}- FastAPI - Framework web moderno y rápido
- Telethon - Cliente de Telegram para Python
- python-dotenv - Manejo de variables de entorno
- La primera vez que ejecutes el servidor, Telegram te pedirá autenticarte mediante código de verificación
- El archivo de sesión se guarda localmente para evitar re-autenticaciones
- Asegúrate de tener los permisos necesarios en tu cuenta de Telegram para publicar historias