Token Discord bota je heslo k účtu bota: kdo ho má, může tohoto bota přihlásit na Discord a nechat ho dělat cokoli, co jeho oprávnění dovolují, na každém serveru, ke kterému se už připojil. Získáte ho zdarma z Discord Developer Portalu, když vytvoříte aplikaci bota. Zacházejte s ním jako s heslem, protože jím přesně je. Není to veřejný identifikátor jako ID uživatele bota nebo odkaz na pozvání.

Jak získat token Discord bota

  1. Otevřete Developer Portal. Přejděte na discord.com/developers/applications a přihlaste se účtem Discord, který má bota vlastnit.
  2. Vytvořte aplikaci. Stiskněte New Application a zadejte název. Tenhle název zatím není zobrazované jméno bota, jen název aplikace.
  3. Otevřete záložku Bot. Discord k aplikaci automaticky přidá uživatele bota. Nastavte tady jeho jméno a avatar. Tohle uvidí členové na serveru.
  4. Zapněte potřebné intenty. V sekci Privileged Gateway Intents jsou Server Members Intent a Message Content Intent ve výchozím stavu vypnuté. Většina botů, které vítají nové členy, čtou text zpráv nebo sledují role, potřebuje zapnuté oba.
  5. Stiskněte Reset Token. Discord token vygeneruje a ukáže vám ho přesně jednou. Hned ho zkopírujte, protože stejný token už později nepůjde znovu zobrazit. Když stisknete Reset Token podruhé, první token přestane platit a vydá se nový.
  6. Vložte ho tam, kde je potřeba. Do kódu svého bota jako proměnnou prostředí nebo do pole v dashboardu hostingového poskytovatele. Nikdy do chatové zprávy, veřejného repozitáře ani do support ticketu.

Co bot token ve skutečnosti uděluje

Token slouží k tomu, aby se kód přihlásil jako uživatel bota ke gateway a REST API Discordu. S platným tokenem kód může:

  • Přihlásit bota a udržet ho online
  • Posílat a číst zprávy v jakémkoli kanálu, který bot vidí
  • Provést jakoukoli akci, kterou na každém serveru, kde už je, dovolují oprávnění jeho role: spravovat role, vyhazovat, banovat, mazat kanály a podobně
  • Číst vlastní DM bota a reagovat na interakce (slash příkazy, tlačítka, modály)

Co neuděluje: schopnost přidat bota na nové servery. Pozvání bota vyžaduje samostatný OAuth2 autorizační odkaz sestavený z client ID aplikace a zvolené sady oprávnění, který musí schválit admin serveru. Uniklý token nelze použít k pozvání bota kamkoli nového, ale dá se použít k vážným škodám na každém serveru, kde už bot je, až do rozsahu oprávnění, která bot na daném serveru má.

Proč nikdy nevkládejte token bota do chatu

Token bota je přihlašovací údaj v čistém textu bez vestavěné expirace. Kdokoli ho má, může běžet vlastní kopii identity vašeho bota, dokud token neresetujete, včetně na support serverech Discordu, v GitHub issues nebo při sdílení obrazovky, kde je vidět i jen krátce. Veřejné vložení, třeba do commitu na GitHubu, Discord považuje za uniklý přihlašovací údaj a je to častý způsob, jak se boti unesou a začnou spamovat všechny servery, na kterých jsou. Dodatečně nelze zjistit, kdo uniklý token použil nebo co s ním udělal. Jediná oprava je reset.

Stejná opatrnost platí i pro sdílení tokenu s hostingovým poskytovatelem. Vkládejte ho jen do vlastního pole v dashboardu poskytovatele přes HTTPS. Nikdy ho neposílejte v zprávě nějaké osobě, ať je důvěryhodná jakkoli, a nikdy ho nedávejte do bug reportu.

Reset tokenu okamžitě ruší přístup

Stisknutí Reset Token v Developer Portalu okamžitě zneplatní starý token. Každý proces, který ho stále používá, váš vlastní kód, hostingový poskytovatel, kdokoli, kdo ho získal bez svolení, se při dalším pokusu o připojení odpojí a se starou hodnotou se znovu nepřihlásí. Na tomto mechanismu stojí dvě věci, které stojí za to znát:

  • Je to váš vypínač. Pokud máte podezření, že token unikl, resetujte ho jako první. Bot se offline stane pro každého, kdo má starý token, a znovu naběhne jen tam, kde je zadán nový.
  • Takhle také měníte poskytovatele. Předali jste svůj token hostingové službě a chcete odejít? Resetujte token v Developer Portalu a jejich přístup okamžitě skončí. Nemusíte je žádat, aby cokoli mazali.

Bot odpojený kvůli resetu tokenu obvykle v logu ukáže gateway close kód 4004 (neplatný token). Discord tím říká, že přihlašovací údaj, který se bot pokusil použít, už neexistuje.

A user's bot token runs on a Noxyr node and comes online as their own branded bot. Your token Noxyr node MyBot Online

Jak Noxyr ukládá váš token

Noxyr žádá bot token jen pro funkci Custom Bot, kde běží celá sada funkcí Noxyru pod jménem a avatarem vašeho vlastního bota. Token se ukládá šifrovaně, používá se jen k přihlášení vašeho bota ke gateway Discordu a po vložení se už nikdy nikomu nezobrazuje, ani vám. Pokud chcete přístup zrušit, resetujte token v Developer Portalu stejným způsobem, jaký je popsán výše. Bot Noxyru se odpojí ihned, stejně jako jakýkoli jiný klient se starým tokenem. Kompletní postup nastavení, potřebné intenty a model přístupu přes hlasování na Top.gg najdete v dokumentaci Custom Bot a v našem návodu k nastavení Custom Bota.

Časté otázky

Kde najdu token svého Discord bota? Developer Portal, vaše aplikace, záložka Bot, Reset Token. Zobrazí se jednou, v okamžiku vygenerování. Neexistuje stránka, která by stávající token zobrazila znovu.

Je bezpečné sdílet token bota? Ne. Sdílení, i soukromé, dá dané osobě plnou kontrolu nad botem na každém serveru, kam se připojil. Zadávejte ho jen do vlastního kódu nebo do pole v dashboardu hostingového poskytovatele.

Co se stane, když resetuji token bota? Starý token přestane okamžitě fungovat všude, kde se používal. Dostanete nový token, který vložíte do kódu nebo do dashboardu poskytovatele. Identita bota, servery a stávající data zůstanou nedotčené.

Dá se uniklým tokenem přidat můj bot na další servery? Ne. K tomu je potřeba samostatný OAuth2 odkaz na pozvání a schválení admina na cílovém serveru. Uniklý token je ale stále nebezpečný na každém serveru, kde je bot už teď.

Smaže reset tokenu něco? Ne. Pouze zneplatní starý přihlašovací údaj. Nastavení, role a uložená data navázaná na aplikaci a ID uživatele bota zůstanou přesně tak, jak byla.

Chcete vlastního bota? Přidejte Noxyr zdarma, nebo se podívejte do průvodce hostingem, pokud píšete vlastní kód.