Enviar notificaciones a Discrod usando Python para tu servidor FastAPI, Django, Flask

Tiempo de lectura: 2 minutos

Hoy vamos a aprender cómo se pueden enviar notificaciones a Discord usando Python para tu servidor FastAPI, Django o Flask.

Lluvia - pexels

Lo primero que haremos es generar el webhook de Discord.

Vamos a Discrod:

Grupo > Canal seleccionado > Editar Canal > Integraciones > Webhooks > Crear Webhook

Webhooks Discord

Ahora creamos el Webhook y lo abrimos pulsando en la flecha >

Elegimos Copiar URL de Webhook

Ahora instalamos la libreria necesaria para realizar peticiones.

pip install requests

Y creamos un .env en raíz del proyecto dónde pegamos la URL de Webook creada.

#Notificacion DISCORD:
DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/33455632245789/ckmkiwiieidoofedwserdtfyguh654dfrtgvybunimou87ghby"

*Cambiamos el ejemplo por el copiado realmente

Y ahora vamos a crear el siguiente util:

"""
discord_notifier.py
Utilidad para enviar notificaciones a Discord.
Uso: importa send_test_notification() en tu webhook.
"""

import json
import requests
from datetime import datetime

import os
from dotenv import load_dotenv

load_dotenv()

DISCORD_WEBHOOK_URL = os.getenv("DISCORD_WEBHOOK_URL")

def _post_discord(payload: dict):
    if not DISCORD_WEBHOOK_URL:
        logger.warning("DISCORD_WEBHOOK_URL no configurada, saltando")
        return
    try:
        response = requests.post(DISCORD_WEBHOOK_URL, json=payload, timeout=5)
        response.raise_for_status()
    except Exception as e:
        logger.error("Discord webhook error: %s", e)


def _embed(title: str, description: str, color: int, fields: list = None) -> dict:
    embed = {
        'title': title,
        'description': description,
        'color': color,
        'timestamp': datetime.utcnow().isoformat(),
        'footer': {'text': 'Texto Ejemplo'},
        'fields': fields or [],
    }
    return {'embeds': }

#Haz una funcion que envie algo por discord directamente
def send_test_notification():
    payload = _embed(
        title='Notificación de prueba',
        description='Si ves esto, la integración con Discord funciona correctamente.',
        color=COLORES['prueba'],
    )
    _post_discord(payload)
    

Con send_test_notification() podrás enviar una notificacion al webhook.

Puedes modificar la función por lo que necesites personalizar.

Deja un comentario