Prejsť na obsah
Aktuálny kupón:zľava 10 %Uplatniť v objednávke

Discord bot: aplikácia, token, intenty a bezpečné uloženie

Vytvoríte aplikáciu v Discord Developer Portali, získate token, zapnete iba potrebné intenty, pozvete bota na server a token bezpečne uložíte do súboru .env.

  • začiatočník
  • ~10 min
  • Aktualizované 9. 10. 2026

Každý Discord bot potrebuje aplikáciu v Discord Developer Portali a token, ktorým sa prihlasuje. Ukážeme, ako aplikáciu založiť, ktoré intenty zapnúť, ako bota pozvať na server a ako token uložiť, aby sa nikdy nedostal von.

Čo budete potrebovať

  • Účet na Discorde s overeným e-mailom
  • Discord server, na ktorom máte oprávnenie Spravovať server (na skúšanie si založte vlastný)
  • Približne 10 minút

Vytvorenie aplikácie#

  1. Otvorte Discord Developer Portal (otvorí sa v novom okne) a prihláste sa.

  2. Kliknite na New Application.

  3. Napíšte názov (napríklad MujBot), potvrďte súhlas s podmienkami a kliknite na Create.

    Otvorí sa stránka General Information. Tu môžete nastaviť ikonu a opis.

  4. Skopírujte si Application ID. Hovorí sa mu aj Client ID a budete ho potrebovať na registráciu slash príkazov. Nie je tajné.

Token bota#

Token je heslo bota. Kto ho má, môže bota ovládať: posielať správy, mazať kanály, banovať ľudí na všetkých serveroch, kde bot je.

  1. V ľavom menu aplikácie kliknite na Bot.
  2. V časti Token kliknite na Reset Token a potvrďte. Discord môže chcieť heslo alebo kód dvojfázového overenia.
  3. Token skopírujte (Copy) a rovno ho uložte (časť „Uloženie tokenu“).

Token sa zobrazí iba raz. Keď ho stratíte, vygenerujte nový tlačidlom Reset Token. Tým sa starý token zneplatní.

Token nikdy do kódu ani na GitHub

Token nepíšte priamo do súboru s kódom, neposielajte ho na Discord, do snímky obrazovky ani podpore. Keď unikne, hneď kliknite na Reset Token a nový token vložte do .env na serveri. Bot so starým tokenom sa odpojí.

Pozor na zámenu: krátky reťazec Client Secret na stránke OAuth2 nie je token bota. Token je dlhší a skladá sa z troch častí oddelených bodkou.

Privileged Gateway Intents#

Intenty hovoria Discordu, aké udalosti má botovi posielať. Väčšina je voľná, tri sú privilegované a musíte ich zapnúť na stránke Bot v časti Privileged Gateway Intents:

IntentČo bot dostaneKedy ho zapnúť
Presence IntentStav členov (online, hrá hru, vlastný status).Iba keď bot stav členov naozaj používa (štatistiky aktivity).
Server Members IntentZoznam členov servera a udalosti príchodu a odchodu.Uvítacie správy, automatické role po pripojení, práca so zoznamom členov.
Message Content IntentText, prílohy a embedy bežných správ.Iba keď bot číta bežné správy (príkazy s prefixom ako !help, moderovanie textu). Slash príkazy ho nepotrebujú.
  • Zapnite iba to, čo bot potrebuje. Intent musí byť zapnutý v Developer Portali aj požadovaný v kóde (GatewayIntentBits v discord.js).
  • Keď kód požaduje intent, ktorý v Developer Portali zapnutý nie je, Discord spojenie ukončí a bot hlási Used disallowed intents.
  • Bot na 100 a viac serveroch musí prejsť overením aplikácie a privilegované intenty mu Discord musí schváliť. Keď aplikáciu vidí viac než 10 000 používateľov, Discord na ďalšie používanie privilegovaných intentov vyžaduje žiadosť a kontrolu, ktorá sa potom každý rok obnovuje.

Bez Message Content Intent bot vidí text iba pri správach, v ktorých je spomenutý, v súkromných správach so sebou a pri správach, ktoré sám poslal.

Pozvanie bota na server#

  1. V ľavom menu aplikácie kliknite na Installation.

  2. V časti Installation Contexts nechajte zaškrtnuté Guild Install (inštalácia na server). User Install potrebujete iba pre príkazy, ktoré si používatelia pridávajú do svojho účtu.

  3. V časti Install Link zvoľte Discord Provided Link.

  4. V časti Default Install Settings pri Guild Install pridajte do Scopes položky applications.commands a bot.

    • bot – pridá na server používateľa bota.
    • applications.commands – dovolí botovi vytvoriť na serveri slash príkazy.
  5. Po pridaní bot sa objaví Permissions. Vyberte iba oprávnenia, ktoré bot potrebuje (tabuľka nižšie), a uložte zmeny.

  6. Skopírujte odkaz z Install Link a otvorte ho v prehliadači.

  7. Zvoľte Add to server, vyberte server a potvrďte Authorize.

    Bot sa objaví v zozname členov servera (zatiaľ offline, kým ho nespustíte).

OprávnenieNa čo ho bot potrebuje
View ChannelsVidieť kanály, kde má pracovať.
Send MessagesPosielať správy.
Embed LinksPosielať embedy (správy s rámčekom a nadpisom).
Read Message HistoryČítať staršie správy (odpovede, upratovanie).
Manage RolesIba keď bot prideľuje role. Spravuje len role pod svojou najvyššou rolou.
AdministratorNedávajte. Bot s týmto právom môže na serveri všetko. Keď token unikne, je to katastrofa.

Odkaz môžete vytvoriť aj ručne na stránke OAuth2 v časti OAuth2 URL Generator: zaškrtnite bot a applications.commands, vyberte oprávnenia a skopírujte vygenerovanú adresu.

Uloženie tokenu#

Token patrí do súboru .env, nie do kódu. Súbor .env vytvorte rovno na serveri, aby ste token nemuseli nikam prenášať:

  1. V zákazníckom účte otvorte bota a prejdite na záložku Súbory, do koreňového priečinka /.

  2. Kliknite na Nový súbor a pomenujte ho .env (s bodkou na začiatku, bez prípony).

  3. Do editora napíšte:

    .envini
    DISCORD_TOKEN=<TOKEN_BOTA>
    CLIENT_ID=<APPLICATION_ID>
    GUILD_ID=<ID_SERVERU>
    • DISCORD_TOKEN – token bota. Za <TOKEN_BOTA> dosaďte token z Developer Portalu, bez úvodzoviek a bez medzier okolo =.
    • CLIENT_ID – Application ID zo stránky General Information.
    • GUILD_ID – ID vášho Discord servera (v Discorde zapnite Používateľské nastavenia › Rozšírené › Režim vývojára, potom kliknite pravým tlačidlom na názov servera › Kopírovať ID servera).
  4. Uložte klávesmi Ctrl+S.

Načítanie .env v kóde#

Node.js súbor .env sám nenačíta, treba mu to povedať. Keďže príkaz na spustenie bota u nás upraviť nejde, načítajte .env priamo v kóde. Najspoľahlivejší je balíček dotenv (nainštalujete ho v počítači príkazom npm install dotenv):

index.jsJavaScript
const path = require('node:path');
require('dotenv').config({ path: path.join(__dirname, '.env'), quiet: true });

const token = process.env.DISCORD_TOKEN;
  • require('dotenv').config({ … }) – načíta premenné zo súboru do process.env. Musí byť úplne hore, pred kódom, ktorý token používa.
  • path: path.join(__dirname, '.env') – hľadá .env v rovnakom priečinku ako index.js, bez ohľadu na to, odkiaľ sa bot spúšťa.
  • quiet: true – nevypisuje pri štarte hlásenie o načítaní.
  • process.env.DISCORD_TOKEN – hodnota z .env. Je to vždy text (string).

Pre ES moduly ("type": "module" v package.json) použite import 'dotenv/config'; na prvom riadku.

Bez balíčka to ide od Node.js 20.12 vstavanou funkciou process.loadEnvFile():

index.jsJavaScript
process.loadEnvFile(require('node:path').join(__dirname, '.env'));

Keď súbor .env neexistuje, táto funkcia skončí chybou. Verziu Node.js zistíte podľa návodu Verzia Node.js. V počítači môžete bota spúšťať aj príkazom node --env-file=.env index.js.

Súbor .gitignore#

Ak kód ukladáte do Gitu (GitHub, GitLab), vytvorte v projekte súbor .gitignore:

.gitignoretext
node_modules
.env

Git potom .env ani node_modules nikdy nenahrá. Keď ste už .env omylom nahrali, nestačí ho zmazať (zostane v histórii). Token hneď resetujte.

Ďalšie tajné údaje#

Do .env patria aj ďalšie heslá a kľúče: heslo k databáze, kľúče API iných služieb, webhooky. Platia rovnaké pravidlá:

  • v kóde iba process.env.NAZEV, nikdy samotná hodnota,
  • nikdy ich nevypisujte do konzoly (konzolu môže vidieť aj člen zdieľanej služby),
  • pri úniku ich hneď zneplatnite v službe, ktorá ich vydala.

Overenie#

  • Bot po spustení prejde na Discorde do stavu online a v Konzole nie je An invalid token was provided.
  • Na kontrolu načítania tokenu vypíšte iba jeho dĺžku, nikdy token: console.log('Délka tokenu:', process.env.DISCORD_TOKEN?.length);. Výpis undefined znamená, že sa .env nenačítal.

Keď niečo nefunguje#

An invalid token was provided.#

Token je nesprávny, po Reset Token už neplatí, alebo sa vôbec nenačítal. Skontrolujte dĺžku tokenu (pozri Overenie), názov premennej v .env aj v kóde (DISCORD_TOKEN) a že v .env nie sú úvodzovky ani medzery navyše. Keď si nie ste istí, vygenerujte nový token a vložte ho znova.

Used disallowed intents#

Kód požaduje privilegovaný intent, ktorý nie je zapnutý v Developer Portali. Na stránke Bot v Privileged Gateway Intents zapnite požadovaný intent, alebo ho odstráňte z kódu.

process.env.DISCORD_TOKEN je undefined#

  • dotenv sa načítava až po kóde, ktorý token používa. Dajte require('dotenv').config(…) na prvé riadky.
  • Súbor sa v skutočnosti volá .env.txt (Windows skrýva prípony). Na serveri ho premenujte na .env.
  • .env je v inom priečinku než hlavný súbor. Použite path.join(__dirname, '.env').

Na stránke Bot ste vypli Public Bot, ale na stránke Installation je nastavený Discord Provided Link. Súkromný bot nesmie mať predvolený odkaz. Buď nechajte Public Bot zapnutý, alebo v Install Link zvoľte None a odkaz vytvorte v OAuth2 URL Generator.

Bot requires a code grant#

Na stránke Bot je zapnuté Requires OAuth2 Code Grant. Ak ho výslovne nepotrebujete, vypnite ho.

Nevidím svoj server v zozname pri pozvaní#

Nemáte na serveri oprávnenie Spravovať server. Požiadajte vlastníka servera, alebo bota pozvite na vlastný server.

Zhrnutie

  • Aplikáciu vytvoríte v Developer Portali (New Application), token získate na stránke Bot tlačidlom Reset Token. Zobrazí sa iba raz.
  • Privilegované intenty (Presence, Server Members, Message Content) zapínajte iba keď ich bot potrebuje, v Developer Portali aj v kóde.
  • Bota pozvete odkazom zo stránky Installation so scopes bot a applications.commands a s čo najmenšími oprávneniami, nikdy Administrator.
  • Token patrí do .env na serveri, v kóde ho načítate cez dotenv a .env pridáte do .gitignore.

Hľadanie v návodoch