DiscordJS

Intégrer la vérification des votes dans un bot Discord (JS)

Dans cet exemple, on crée une commande /vote qui :

  1. Envoie un message avec :

    • un bouton “Voter sur DiscordTop” → ouvre la page de vote,

    • un bouton “Vérifier mon vote” → appelle l’API DiscordTop.

  2. Si le vote est validé par l’API, vous pouvez appliquer vos propres récompenses :

    • donner un rôle,

    • ajouter de l’XP,

    • ouvrir l’accès à un salon privé, etc.


1. Pré-requis

  • Node.js 18+ (pour avoir fetch intégré)

  • Un bot Discord configuré (token)

  • Un token API DiscordTop (api_token) associé à votre serveur - Comment trouvé ma clé ?

Packages :

npm install discord.js dotenv

2. Configuration du projet

Créez un fichier .env à la racine :

DTOP_GUILD_ID est l’ID du serveur tel qu’il apparaît sur DiscordTop (en général, c’est le même que l’ID Discord).


3. Enregistrer la commande /vote

Créez un fichier deploy-commands.js :

Lancer une fois :


4. Bot de base avec /vote + boutons

Créez un fichier index.js :


5. Où brancher votre propre logique de récompenses ?

Dans l’exemple ci-dessus, le bloc important est ici :

C’est à cet endroit précis que vous pouvez :

  • incrémenter un champ XP dans votre base,

  • ajouter un rôle avec member.roles.add(...),

  • logger l’événement dans un salon staff,

  • comptabiliser les votes journaliers, etc.


6. Résumé du flux côté bot

  1. L’utilisateur tape /vote

  2. Le bot répond avec :

    • un bouton lien → page de vote DiscordTop,

    • un bouton “Vérifier mon vote”

  3. L’utilisateur clique “Vérifier mon vote”

  4. Le bot appelle :

  1. Selon la réponse :

    • ✅ 200 → vote valide → vos récompenses sont appliquées

    • ❌ 404 → pas de vote récent

    • 🚫 429 → trop de requêtes, respectez retry_after

    • 🔐 401/403 → problème de configuration API

    • 💥 500 → erreur côté DTOP (à réessayer plus tard)

Last updated