Wiki · Integrace
Discord — server a bot
Když Discord bot zůstane offline, téměř vždy chybí Message Content Intent. Nastavení, oprávnění a chování v kanálech.
🎮
Když Discord bot zůstane offline, v 90 % případů chybí „Message Content Intent“.
Discord obsah zpráv botům ve výchozím stavu nevydává. Hermes si o něj vždy říká, a dokud není
v Developer Portalu zapnutý, Discord spojení odmítne — bot se vůbec nepřipojí.
Druhý povinný přepínač je Server Members Intent (jinak neumí dohledat uživatele).
1. Aplikace a bot
1) discord.com/developers/applications → New Application (jméno = jméno bota)
2) Bot → Add Bot → zkopírovat token (DISCORD_BOT_TOKEN)
3) Privileged Gateway Intents:
Server Members Intent → ON (povinné)
Message Content Intent → ON (povinné!)
Presence Intent → volitelné
4) Installation (nebo ruční URL): scopes „bot“ + „applications.commands“
# minimální oprávnění bota
View Channels · Send Messages · Embed Links · Attach Files · Read Message History
# doporučená navíc
Create Public Threads · Send Messages in Threads
# ruční pozvánka (YOUR_APP_ID nahraďte)
https://discord.com/oauth2/authorize?client_id=YOUR_APP_ID&scope=bot+applications.commands&permissions=309237763136
2. ID uživatele a přístup
| Nastavení | Význam |
|---|---|
DISCORD_BOT_TOKEN | Token bota |
DISCORD_ALLOWED_USERS | Číselná ID uživatelů (čárkou). Bez něj i bez rolí Hermes všechny odmítne — bezpečnostní výchozí stav |
DISCORD_ALLOWED_ROLES | ID rolí — kdo má roli, má přístup (vhodné pro měnící se tým moderátorů) |
DISCORD_ALLOWED_CHANNELS | Omezení na konkrétní kanály |
DISCORD_REQUIRE_MENTION | Zda musí být bot označen (výchozí ano v kanálech) |
DISCORD_FREE_RESPONSE_CHANNELS | Kanály, kde bot odpovídá i bez označení |
ID se kopírují v Discordu po zapnutí Developer Mode (Uživatelská nastavení → Pokročilé). Uživatelská jména fungují jen jako doplněk a nikdy se nepárují podle přezdívek na serveru — ty si může nastavit kdokoli.
3. Jak se bot chová
| Kde | Chování |
|---|---|
| Soukromé zprávy | Odpovídá na vše, každá konverzace má vlastní sezení |
| Kanály serveru | Ve výchozím stavu jen na označení @bot; bez označení zprávu ignoruje |
| Kanály bez povinného označení | Odpovídá průběžně (hodí se pro „pracovní“ kanál); volitelně si každou zprávu vezme do vlastního vlákna |
| Vlákna | Odpovídá ve stejném vlákně a historie vlákna zůstává oddělená od kanálu |
| Víc lidí v jednom kanále | Historie se ve výchozím stavu drží zvlášť pro každého — dva lidé si nepřepisují kontext |
| Fórová vlákna | Bot si při každém odeslání založí nové vlákno (fórum nepřijímá přímé zprávy) |
4. Domovský kanál a hlas
# příkazem v kanálu, kde bot je
/sethome
# nebo v .env
DISCORD_HOME_CHANNEL=123456789012345678
DISCORD_HOME_CHANNEL_NAME="#bot-updates"
Do domovského kanálu chodí to, co bot posílá sám: výsledky pravidelných úloh, připomínky, oznámení.
Discord umí i hlas: příchozí hlasové zprávy přepisuje, /voice tts zapne odpovědi
mluveným slovem a bot se umí připojit do hlasového kanálu. Podrobnosti má stránka o hlasovém režimu.
5. Bezpečnost
🔐
Bez
DISCORD_ALLOWED_USERS i DISCORD_ALLOWED_ROLES Hermes všechny odmítne.
To je záměr: autorizovaný uživatel má plný přístup k nástrojům agenta, tedy i k serveru, kde běží.
Nikdy nedávejte přístup celému serveru jen proto, že je to pohodlnější.| Situace | Co s tím |
|---|---|
| Bot je online, ale neodpovídá | Chybí allowlist (bot odmítá všechny), nebo zpráva neobsahuje označení |
| Bot se vůbec nepřipojí | Message Content Intent, viz začátek stránky |
| Nevidí uživatele | Server Members Intent je vypnutý |
| Odpovídá ve špatném kanále | Přidejte kanál do DISCORD_FREE_RESPONSE_CHANNELS, nebo naopak omezujte přes DISCORD_ALLOWED_CHANNELS |
