Sådan laver du en Discord-bot
På denne side
En Discord-bot er et program, der logger ind på Discord med sin egen konto og svarer på kommandoer, modererer, spiller spil eller poster opdateringer. Du skal bruge tre ting for at lave en: en applikation i Discords Developer Portal, et par linjer kode og et sted, hvor koden kan køre.
I denne guide bygger du en fungerende bot med slash-kommandoen /ping i Python (discord.py) eller JavaScript (discord.js) — vælg det sprog, du kender.
Trin 1: Opret applikationen og bot-tokenet
- Åbn Developer Portal. Gå til discord.com/developers/applications, opret en ny applikation, og giv den et navn.
- Hent tokenet. Klik på Reset Token på siden Bot, og kopiér det. Discord viser det kun én gang; mister du det, så nulstil det igen.
- Hold tokenet hemmeligt. Det er bottens adgangskode: alle, der har det, styrer din bot. Indsæt det aldrig i kode, du deler, og commit det aldrig til Git.
Trin 2: Inviter botten til din server
- Åbn siden Installation for din applikation.
- Under standardinstallationsindstillingerne for servere (guilds) tilføjer du scopes
botogapplications.commandssamt de tilladelser, botten skal bruge — Send Messages er nok til denne guide. - Åbn det installationslink, du får, vælg din server, og godkend. Botten dukker op på medlemslisten, offline indtil din kode kører.
Ældre guides bruger OAuth2 > URL Generator med de samme to scopes; det virker stadig.
Trin 3a: Skriv botten i Python (discord.py)
discord.py 2.7 kræver Python 3.8 eller nyere. Installer det, og opret 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"])
Kør det med tokenet i en miljøvariabel, for eksempel DISCORD_TOKEN=your-token python bot.py på Linux eller macOS.
Trin 3b: Skriv botten i JavaScript (discord.js)
discord.js 14 kræver Node.js 18 eller nyere. Kør npm install discord.js i en ny mappe, og opret 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);
Start den med DISCORD_TOKEN=your-token node index.js. Når konsollen viser Logged in, skriver du /ping på din server.
Hold tokenet ude af din kode
- Brug en miljøvariabel eller en
.env-fil, og tilføj.envtil.gitignorefør dit første commit. - Hvis tokenet lækker, så nulstil det med det samme på siden Bot. Det gamle token holder op med at virke, og du opdaterer det der, hvor botten kører.
- GitHub scanner offentlige repositories for Discord-bot-tokens og rapporterer dem til Discord, som kan tilbagekalde dem — så et token, der ved en fejl er pushet, holder ofte op med at virke, før du opdager det.
Trin 4: Hold din bot online
Din bot er kun online, mens dens kode kører. Lukker du terminalen eller slukker pc’en, går den offline. Du har tre muligheder:
- Din egen pc — gratis og fin til udvikling og test, men botten sover, når computeren gør.
- En gratis plan — de fleste sætter bots i dvale eller begrænser dem, der kører hele måneden; fordele og ulemper sammenlignes i gratis Discord-bot-hosting.
- Bot-hosting — en lille server, der altid er tændt. På HytHost Discord-bot-hosting uploader du dit projekt, vælger Node.js, Python eller et andet runtime, og panelet starter botten og genstarter den, hvis den crasher.
Hele gennemgangen, fra upload til automatisk genstart, finder du i sådan hoster du en Discord-bot 24/7.
Kør din bot uden at lade din pc stå tændt: HytHost Discord-bot-hosting understøtter Node.js, Python, Java, Go, C#, Bun og Lavalink — fra €0.89/md.
Se bot-hostingplanerOfte stillede spørgsmål
Ja. Det koster intet at oprette applikationen, tokenet og koden, og discord.py og discord.js er gratis. Du betaler kun, hvis du vil have den hostet et sted, hvor den forbliver online.
Det, du allerede kan. discord.py og discord.js er begge modne og dækker hele Discord API. Kan du ingen af dem, er Python lettere at læse; JavaScript har det største økosystem af biblioteker.
Tjek, at du inviterede den med scopet applications.commands, og at koden synkroniserede kommandoerne. Globale kommandoer kan være et øjeblik om at dukke op; genstart Discord, hvis de ikke gør.
For at læse tekst i almindelige beskeder skal du bruge Message Content-intentet, slået til i Developer Portal og anmodet om i din kode. Uden det modtager botten stadig slash-kommandoer, omtaler og DM’er.
Nulstil det med det samme på siden Bot i Developer Portal. Det gamle token holder op med at virke; indsæt det nye overalt, hvor botten kører, og fjern det gamle fra din kode og historik.
Din bot online uden din pc
HytHost Discord-bot-hosting kører Node.js, Python, Java, Go, C#, Bun eller Lavalink med en MySQL-database og backups — fra €0.89/md.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursVar denne guide en hjælp?