Jak vytvořit Discord bota
Na této stránce
Discord bot je program, který se do Discordu přihlašuje vlastním účtem a odpovídá na příkazy, moderuje, hraje hry nebo posílá novinky. K jeho vytvoření potřebujete tři věci: aplikaci v Discord Developer Portal, pár řádků kódu a místo, kde ten kód poběží.
V tomto návodu postavíte funkčního bota se slash příkazem /ping, v jazyce Python (discord.py) nebo JavaScript (discord.js) — vyberte si ten, který znáte.
Krok 1: Vytvořte aplikaci a token bota
- Otevřete Developer Portal. Přejděte na discord.com/developers/applications, vytvořte novou aplikaci a pojmenujte ji.
- Získejte token. Na stránce Bot klikněte na Reset Token a zkopírujte ho. Discord ho zobrazí jen jednou; pokud ho ztratíte, resetujte ho znovu.
- Token držte v tajnosti. Je to heslo bota: kdo ho má, ovládá vašeho bota. Nikdy ho nevkládejte do kódu, který sdílíte, ani ho necommitujte do Gitu.
Krok 2: Pozvěte bota na svůj server
- Otevřete stránku Installation své aplikace.
- Ve výchozím nastavení instalace pro servery (guilds) přidejte scopes
botaapplications.commandsa oprávnění, která bot potřebuje — pro tento návod stačí Send Messages. - Otevřete instalační odkaz, který dostanete, vyberte svůj server a autorizujte. Bot se objeví v seznamu členů, offline, dokud nespustíte kód.
Starší návody používají OAuth2 > URL Generator se stejnými dvěma scopes; i to stále funguje.
Krok 3a: Napište bota v Pythonu (discord.py)
discord.py 2.7 vyžaduje Python 3.8 nebo novější. Nainstalujte ho a vytvořte 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"])
Spusťte ho s tokenem v proměnné prostředí, například DISCORD_TOKEN=your-token python bot.py na Linuxu nebo macOS.
Krok 3b: Napište bota v JavaScriptu (discord.js)
discord.js 14 vyžaduje Node.js 18 nebo novější. V nové složce spusťte npm install discord.js a vytvořte 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);
Spusťte ho příkazem DISCORD_TOKEN=your-token node index.js. Jakmile konzole ukáže Logged in, napište na svém serveru /ping.
Token nepatří do kódu
- Použijte proměnnou prostředí nebo soubor
.enva před prvním commitem přidejte.envdo.gitignore. - Pokud token unikne, resetujte ho okamžitě na stránce Bot. Starý token přestane fungovat a nový nastavíte tam, kde bot běží.
- GitHub prohledává veřejné repozitáře kvůli tokenům Discord botů a hlásí je Discordu, který je může zneplatnit — takže omylem nahraný token často přestane fungovat dřív, než si toho všimnete.
Krok 4: Udržte bota online
Bot je online jen tehdy, když běží jeho kód. Zavřete terminál nebo vypněte PC a bot přejde do offline. Máte tři možnosti:
- Vlastní PC — zdarma, vhodné pro vývoj a testování, ale bot spí, když spí počítač.
- Bezplatný tarif — většina z nich boty uspává nebo omezuje jejich běh během měsíce; výhody a nevýhody srovnáváme v článku hosting Discord botů zdarma.
- Hosting botů — malý server, který běží pořád. Na hostingu Discord botů od HytHost nahrajete projekt, zvolíte Node.js, Python nebo jiné prostředí a panel bota spustí a při pádu ho restartuje.
Kompletní postup od nahrání po automatický restart najdete v návodu jak hostovat Discord bota 24/7.
Provozujte bota bez zapnutého PC: hosting Discord botů od HytHost podporuje Node.js, Python, Java, Go, C#, Bun a Lavalink — od €0.89/měs.
Zobrazit tarify hostingu botůČasto kladené otázky
Ano. Vytvoření aplikace, tokenu i kódu nic nestojí a discord.py i discord.js jsou zdarma. Platíte jen tehdy, když chcete bota hostovat někde, kde zůstane online.
Ten, který už znáte. discord.py i discord.js jsou vyspělé a pokrývají celé Discord API. Pokud neznáte ani jeden, Python se čte jednodušeji; JavaScript má větší ekosystém knihoven.
Zkontrolujte, že jste bota pozvali se scope applications.commands a že kód příkazy synchronizoval. Globálním příkazům může chvíli trvat, než se objeví; pokud se neobjeví, restartujte Discord.
Ke čtení textu běžných zpráv je potřeba intent Message Content, zapnutý v Developer Portal a vyžádaný v kódu. Bez něj bot stále dostává slash příkazy, zmínky a soukromé zprávy.
Okamžitě ho resetujte na stránce Bot v Developer Portal. Starý token přestane fungovat; nový vložte všude, kde bot běží, a starý odstraňte z kódu i z historie.
Váš bot online i bez vašeho PC
Hosting Discord botů od HytHost spustí Node.js, Python, Java, Go, C#, Bun nebo Lavalink s databází MySQL a zálohami — od €0.89/měs.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursByl tento návod užitečný?