Så gör du en Discord-bot
På den här sidan
En Discord-bot är ett program som loggar in på Discord med ett eget konto och svarar på kommandon, modererar, spelar spel eller publicerar uppdateringar. För att göra en behövs tre saker: en applikation i Discords Developer Portal, några rader kod och någonstans där koden kan köras.
I den här guiden bygger du en fungerande bot med snedstreckskommandot /ping i Python (discord.py) eller JavaScript (discord.js) — välj det språk du kan.
Steg 1: Skapa applikationen och bot-token
- Öppna Developer Portal. Gå till discord.com/developers/applications, skapa en ny applikation och ge den ett namn.
- Hämta token. Klicka på Reset Token på sidan Bot och kopiera den. Discord visar den bara en gång; tappar du bort den återställer du den igen.
- Håll token hemlig. Den är botens lösenord: den som har den styr din bot. Klistra aldrig in den i kod du delar och committa den aldrig till Git.
Steg 2: Bjud in boten till din server
- Öppna sidan Installation för din applikation.
- Under standardinställningarna för installation på servrar (guilds) lägger du till scopes
botochapplications.commandssamt de behörigheter boten behöver — Send Messages räcker för den här guiden. - Öppna installationslänken du får, välj din server och auktorisera. Boten dyker upp i medlemslistan, offline tills din kod körs.
Äldre guider använder OAuth2 > URL Generator med samma två scopes; det fungerar fortfarande.
Steg 3a: Skriv boten i Python (discord.py)
discord.py 2.7 kräver Python 3.8 eller senare. Installera det och skapa 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 den med token i en miljövariabel, till exempel DISCORD_TOKEN=your-token python bot.py på Linux eller macOS.
Steg 3b: Skriv boten i JavaScript (discord.js)
discord.js 14 kräver Node.js 18 eller senare. Kör npm install discord.js i en ny mapp och skapa 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);
Starta den med DISCORD_TOKEN=your-token node index.js. När konsolen visar Logged in skriver du /ping på din server.
Håll token borta från koden
- Använd en miljövariabel eller en
.env-fil och lägg till.envi.gitignoreföre din första commit. - Om token läcker, återställ den direkt på sidan Bot. Den gamla token slutar fungera och du uppdaterar den där boten körs.
- GitHub skannar publika repon efter Discord-bottokens och rapporterar dem till Discord, som kan återkalla dem — så en token som pushats av misstag slutar ofta fungera innan du märker det.
Steg 4: Håll boten online
Boten är bara online medan koden körs. Stänger du terminalen eller datorn går den offline. Du har tre alternativ:
- Din egen dator — gratis och bra för utveckling och test, men boten sover när datorn gör det.
- En gratisnivå — de flesta söver eller begränsar botar som körs hela månaden; för- och nackdelarna jämförs i gratis Discord-bothosting.
- Bothosting — en liten server som alltid är igång. På HytHost Discord-bothosting laddar du upp ditt projekt, väljer Node.js, Python eller en annan runtime, och panelen startar boten och startar om den om den kraschar.
Hela genomgången, från uppladdning till automatisk omstart, finns i så hostar du en Discord-bot 24/7.
Kör din bot utan att lämna datorn på: HytHost Discord-bothosting stöder Node.js, Python, Java, Go, C#, Bun och Lavalink — från €0.89/mån.
Se bothostingplanerVanliga frågor
Ja. Att skapa applikationen, token och koden kostar ingenting, och discord.py och discord.js är gratis. Du betalar bara om du vill hosta den någonstans där den förblir online.
Det du redan kan. discord.py och discord.js är båda mogna och täcker hela Discord API. Kan du inget av dem är Python enklare att läsa; JavaScript har ett större ekosystem av bibliotek.
Kontrollera att du bjöd in den med scopet applications.commands och att koden synkade kommandona. Globala kommandon kan dröja en stund innan de syns; starta om Discord om de inte gör det.
För att läsa text i vanliga meddelanden krävs intentet Message Content, påslaget i Developer Portal och begärt i din kod. Utan det tar boten ändå emot snedstreckskommandon, omnämnanden och DM.
Återställ den direkt på sidan Bot i Developer Portal. Den gamla token slutar fungera; lägg in den nya överallt där boten körs och ta bort den gamla från din kod och historik.
Din bot online utan din dator
HytHost Discord-bothosting kör Node.js, Python, Java, Go, C#, Bun eller Lavalink med en MySQL-databas och säkerhetskopior — från €0.89/mån.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursVar den här guiden till hjälp?