Le bot utilise les interactions HTTP : Discord appelle le Worker Cloudflare à chaque commande. Il n’y a pas de connexion Gateway permanente. Configure d’abord l’application, déploie le Worker, puis enregistre les endpoints HTTP.
/discord/interactions reçoit les commandes slash.
/discord/events reçoit les événements d’autorisation et de désautorisation de
l’application. Ce dernier est un Event Webhook, pas un webhook entrant créé dans un
salon Discord.
1. Créer ou ouvrir l’application
- Ouvre le Developer Portal.Va sur Discord Developer Portal et sélectionne l’application.
-
Ouvre General Information.Copie Application ID dans
DISCORD_APPLICATION_IDet Public Key dansDISCORD_PUBLIC_KEYsur GitHub. -
Configure les pages légales.Terms of Service URL :
https://zevent.app/terms. Privacy Policy URL :https://zevent.app/privacy.
2. Configurer le Bot Token
- Ouvre Bot.Crée le bot si Discord le demande.
-
Réinitialise le token si nécessaire.Copie immédiatement sa valeur dans le secret GitHub
DISCORD_TOKEN. - Laisse les intents privilégiés désactivés.Le runtime HTTP n’utilise ni Presence Intent, ni Server Members Intent, ni Message Content Intent.
- Autorise l’installation publique.Le bot doit pouvoir être ajouté aux serveurs si le projet est destiné au public.
3. Configurer OAuth2
-
Ouvre OAuth2.Copie le Client Secret dans
DISCORD_CLIENT_SECRETsur GitHub. -
Ajoute le callback d’installation.Dans Redirects, ajoute exactement
https://bot.zevent.app/discord/install/callback. -
Ajoute le callback admin.Ajoute exactement
https://admin-api.zevent.app/oauth/callback. - Enregistre.Les URLs, chemins, slashs et protocoles doivent être strictement identiques aux variables GitHub.
4. Configurer Installation
- Active les deux contextes.Coche Guild Install et User Install.
-
Choisis Custom URL.Dans Install Link, sélectionne Custom URL et utilise
https://zevent.app/install. -
N’utilise pas Discord Provided Link en parallèle.
install_paramsetcustom_install_urlsont mutuellement exclusifs. Le workflow efface automatiquement les anciens paramètres lors du déploiement.
5. Déployer le Worker avant les endpoints
Lance une première fois le workflow GitHub. Vérifie ensuite que
https://bot.zevent.app/healthz répond. Discord teste
immédiatement les signatures et les réponses PING lorsqu’un endpoint est enregistré ; une URL qui
ne pointe pas encore vers le Worker sera refusée.
6. Configurer l’Interactions Endpoint URL
- Retourne dans General Information.Repère le champ Interactions Endpoint URL.
-
Colle l’URL.
https://bot.zevent.app/discord/interactions -
Clique sur Save Changes.Discord envoie une requête PING signée. Le Worker vérifie la signature avec
DISCORD_PUBLIC_KEYet répond automatiquement. - En cas de refus.Vérifie que l’URL est en HTTPS, que le Worker est déployé et que la Public Key GitHub appartient à la même application.
7. Configurer l’Event Webhook
- Ouvre Webhooks dans le menu de l’application.Utilise la section Event Webhooks, pas « Integrations » dans un serveur Discord.
-
Renseigne Endpoint URL.
https://bot.zevent.app/discord/events - Active Events.Active le bouton d’envoi des événements HTTP.
-
Sélectionne deux événements.
APPLICATION_AUTHORIZEDetAPPLICATION_DEAUTHORIZED. - Enregistre.Discord envoie également un PING signé et attend une réponse HTTP 204.
Avec DISCORD_EVENT_WEBHOOK_URL et DISCORD_INSTALL_CALLBACK_URL dans
les variables GitHub, le job Configure Discord installation contexts applique ces
réglages après chaque déploiement du Worker. Les étapes manuelles ci-dessus servent à comprendre
et vérifier le résultat dans le portail.
8. Vérifier les commandes
-
Installe sur un serveur.Utilise
https://zevent.app/install, puis exécute/setup channel. -
Installe sur ton compte.Exécute
/events,/goalsou/scheduledans un contexte compatible. -
Vérifie l’admin.L’installation utilisateur doit apparaître dans le panneau après l’événement
APPLICATION_AUTHORIZED.