Comment créer un bot Discord
Sur cette page
Un bot Discord est un programme qui se connecte à Discord avec son propre compte et répond aux commandes, modère, lance des jeux ou publie des actualités. Pour en créer un, il faut trois choses : une application dans le Developer Portal de Discord, quelques lignes de code et un endroit où faire tourner ce code.
Ce guide construit un bot fonctionnel avec une commande slash /ping, en Python (discord.py) ou en JavaScript (discord.js) — choisissez le langage que vous connaissez.
Étape 1 : créer l'application et le token du bot
- Ouvrez le Developer Portal. Rendez-vous sur discord.com/developers/applications, créez une nouvelle application et donnez-lui un nom.
- Récupérez le token. Sur la page Bot, cliquez sur Reset Token et copiez-le. Discord ne l'affiche qu'une seule fois ; si vous le perdez, réinitialisez-le à nouveau.
- Gardez le token secret. C'est le mot de passe du bot : quiconque le possède contrôle votre bot. Ne le collez jamais dans du code que vous partagez et ne le commitez jamais dans Git.
Étape 2 : inviter le bot sur votre serveur
- Ouvrez la page Installation de votre application.
- Dans les paramètres d'installation par défaut pour les serveurs (guilds), ajoutez les scopes
botetapplications.commands, ainsi que les permissions dont le bot a besoin — Send Messages suffit pour ce guide. - Ouvrez le lien d'installation fourni, choisissez votre serveur et autorisez. Le bot apparaît dans la liste des membres, hors ligne tant que votre code ne tourne pas.
Les anciens tutoriels utilisent OAuth2 > URL Generator avec les deux mêmes scopes ; cela fonctionne toujours.
Étape 3a : écrire le bot en Python (discord.py)
discord.py 2.7 nécessite Python 3.8 ou plus récent. Installez-le et créez bot.py :
pip install discord.py
import os
import discord
from discord import app_commands
class Bot(discord.Client):
def __init__(self):
super().__init__(intents=discord.Intents.default())
self.tree = app_commands.CommandTree(self)
async def setup_hook(self):
await self.tree.sync()
bot = Bot()
@bot.tree.command(description="Replies with Pong!")
async def ping(interaction: discord.Interaction):
await interaction.response.send_message("Pong!")
bot.run(os.environ["DISCORD_TOKEN"])
Lancez-le avec le token dans une variable d'environnement, par exemple DISCORD_TOKEN=your-token python bot.py sous Linux ou macOS.
Étape 3b : écrire le bot en JavaScript (discord.js)
discord.js 14 nécessite Node.js 18 ou plus récent. Dans un nouveau dossier, exécutez npm install discord.js et créez index.js :
const { Client, Events, GatewayIntentBits, REST, Routes, SlashCommandBuilder } = require('discord.js');
const commands = [new SlashCommandBuilder().setName('ping').setDescription('Replies with Pong!').toJSON()];
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
client.once(Events.ClientReady, async (c) => {
await new REST().setToken(process.env.DISCORD_TOKEN).put(Routes.applicationCommands(c.user.id), { body: commands });
console.log(`Logged in as ${c.user.tag}`);
});
client.on(Events.InteractionCreate, async (interaction) => {
if (interaction.isChatInputCommand() && interaction.commandName === 'ping') await interaction.reply('Pong!');
});
client.login(process.env.DISCORD_TOKEN);
Démarrez-le avec DISCORD_TOKEN=your-token node index.js. Quand la console affiche Logged in, tapez /ping sur votre serveur.
Garder le token hors de votre code
- Utilisez une variable d'environnement ou un fichier
.env, et ajoutez.envà.gitignoreavant votre premier commit. - Si le token fuite, réinitialisez-le immédiatement sur la page Bot. L'ancien token cesse de fonctionner, et vous mettez à jour le nouveau là où tourne le bot.
- GitHub analyse les dépôts publics à la recherche de tokens de bots Discord et les signale à Discord, qui peut les révoquer — un token poussé par erreur cesse donc souvent de fonctionner avant que vous ne le remarquiez.
Étape 4 : garder votre bot en ligne
Votre bot n'est en ligne que tant que son code tourne. Fermez le terminal ou éteignez le PC, et il passe hors ligne. Vous avez trois options :
- Votre propre PC — gratuit, pratique pour développer et tester, mais le bot dort quand l'ordinateur dort.
- Une offre gratuite — la plupart mettent en veille ou limitent les bots qui tournent tout le mois ; les compromis sont comparés dans hébergement gratuit de bots Discord.
- L'hébergement de bots — un petit serveur toujours allumé. Sur l'hébergement de bots Discord HytHost, vous envoyez votre projet, choisissez Node.js, Python ou un autre environnement, et le panneau démarre le bot et le relance s'il plante.
La procédure complète, de l'envoi au redémarrage automatique, se trouve dans comment héberger un bot Discord 24/7.
Faites tourner votre bot sans laisser votre PC allumé : l'hébergement de bots Discord HytHost prend en charge Node.js, Python, Java, Go, C#, Bun et Lavalink — dès €0.89/mois.
Voir les offres d'hébergementQuestions fréquentes
Oui. Créer l'application, le token et le code ne coûte rien, et discord.py comme discord.js sont gratuits. Vous ne payez que si vous voulez l'héberger quelque part où il reste en ligne.
Celui que vous connaissez déjà. discord.py et discord.js sont tous deux matures et couvrent toute l'API Discord. Si vous ne connaissez ni l'un ni l'autre, Python se lit plus simplement ; JavaScript dispose d'un écosystème de bibliothèques plus vaste.
Vérifiez que vous l'avez invité avec le scope applications.commands et que le code a bien synchronisé les commandes. Les commandes globales peuvent mettre un moment à apparaître ; redémarrez Discord si elles ne s'affichent pas.
Lire le texte des messages normaux nécessite l'intent Message Content, activé dans le Developer Portal et demandé dans votre code. Sans lui, le bot reçoit quand même les commandes slash, les mentions et les messages privés.
Réinitialisez-le immédiatement sur la page Bot du Developer Portal. L'ancien token cesse de fonctionner ; mettez le nouveau là où tourne le bot, et supprimez l'ancien de votre code ou de votre historique.
Votre bot en ligne, sans votre PC
L'hébergement de bots Discord HytHost fait tourner Node.js, Python, Java, Go, C#, Bun ou Lavalink avec une base de données MySQL et des sauvegardes — dès €0.89/mois.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursCe guide vous a-t-il été utile ?