Discord · Návod

Jak vytvořit Discord bota

Aktualizováno October 10, 2026 4 min čtení

Na této stránce
  1. Krok 1: Vytvořte aplikaci a token bota
  2. Krok 2: Pozvěte bota na svůj server
  3. Krok 3a: Napište bota v Pythonu (discord.py)
  4. Krok 3b: Napište bota v JavaScriptu (discord.js)
  5. Token nepatří do kódu
  6. Krok 4: Udržte bota online
  7. FAQ

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

  1. Otevřete Developer Portal. Přejděte na discord.com/developers/applications, vytvořte novou aplikaci a pojmenujte ji.
  2. 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.
  3. 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.
Potřebujete intenty? Bot, který používá jen slash příkazy, nepotřebuje žádný privilegovaný intent. Message Content na stránce Bot zapněte jen tehdy, když bot musí číst, co lidé píšou v běžných zprávách. Boti na serverech s více než 10 000 uživateli potřebují pro privilegované intenty schválení od Discordu.

Krok 2: Pozvěte bota na svůj server

  1. Otevřete stránku Installation své aplikace.
  2. Ve výchozím nastavení instalace pro servery (guilds) přidejte scopes bot a applications.commands a oprávnění, která bot potřebuje — pro tento návod stačí Send Messages.
  3. 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 .env a před prvním commitem přidejte .env do .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ů
FAQ

Č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 hours

Byl tento návod užitečný?