Gateway intents na Discordu: co smí bot slyšet
Gateway intents jsou volby, které bot při připojení deklaruje a které Discordu říkají, jaké skupiny živých událostí chce dostávat. Bot, který o intent nepožádal, o těchto událostech prostě neslyší, což udržuje data soukromá a provoz malý.
Co je gateway
Bot drží stálé spojení s Discordem, říká se mu gateway. Přes něj Discord posílá události ve chvíli, kdy se stanou: někdo poslal zprávu, člen se připojil, někdo začal psát, změnil se hlasový kanál. Bez omezení by každý bot dostával každou událost ze všech serverů.
Intenty jsou filtr. V první zprávě, kterou bot po připojení odešle, uvede intenty, které chce, jako jedno číslo. Discord pak pošle jen odpovídající události.
Běžné intenty
- Guilds: vytváření a změny serverů, kanálů a rolí. Téměř každý bot ho používá.
- Guild messages: zprávy v kanálech serveru. Text těchto zpráv potřebuje privilegovaný intent, viz níže.
- Guild voice states: kdo se připojí nebo odejde z hlasových kanálů. Hudební a hlasové nástroje ho potřebují.
- Guild moderation: bany a položky auditního logu.
- Guild message reactions: přidané nebo odebrané reakce.
Tři intenty jsou zvláštní: presence, členové serveru a obsah zpráv. Jsou to privilegované intenty, protože odhalují víc osobních údajů a větší boti pro ně potřebují další schválení.
Proč na tom záleží majitelům serverů
Když je bot online, ale ignoruje zprávy, připojení nebo změny v hlasu, častou příčinou je chybějící intent. Může to vysvětlit i odpojení s chybovým kódem 4014, když bot žádá privilegovaný intent, který v jeho nastavení není zapnutý. Článek o chybách gateway 4004 a 4014 to vysvětluje.
Intenty jsou také signál soukromí. Bot, který žádá jen to, co jeho funkce potřebují, se důvěřuje snáz.
Intenty a Noxyr
Hlavní bot Noxyr je spravovaný za vás. Pokud nastavíte vlastního bota s vlastní aplikací, musí být v Discord Developer Portalu zapnuté Server Members Intent a Message Content Intent, jak vysvětluje návod k nastavení. Potřebují je funkce jako uvítací zprávy a příkazy s prefixem. Pokud je vlastní bot offline, začněte s návodem k botovi offline.
Podrobnosti najdete v článku privilegované gateway intenty vysvětleny.
Kontrola bota, který jste nenapsali
Pokud se nainstalovaný bot chová divně, zeptejte se jeho autora, které intenty používá a proč. Dobří boti je uvádějí v dokumentaci. U svého vlastního bota otevřete Developer Portal, přejděte na stránku Bot a porovnejte přepínače s tím, co kód žádá. Nesoulad je první věc, kterou opravte.
Časté otázky
Co se stane, když bot intent nepožádá?
Discord mu odpovídající události neposílá. Bot zůstane online, ale na tyto věci nemůže reagovat.
Kde zapnu intenty pro svého bota?
V Discord Developer Portalu otevřete svou aplikaci, přejděte na Bot a zapněte privilegované intenty, které potřebuje.
Jsou všechny intenty privilegované?
Ne. Privilegované jsou jen presence, členové serveru a obsah zpráv. Ostatní lze používat volně.