Intencje gateway Discorda: czego bot może słuchać
Intencje gateway to opcje, które bot deklaruje przy połączeniu, informując Discorda, z jakich grup zdarzeń na żywo chce korzystać. Bot, który nie zażądał danej intencji, po prostu nigdy nie usłyszy tych zdarzeń, co chroni dane i ogranicza ruch.
Czym jest gateway
Bot utrzymuje stałe połączenie z Discordem, zwane gatewayem. Przez nie Discord wysyła zdarzenia w chwili ich zajścia: wysłano wiadomość, dołączył członek, ktoś zaczął pisać, zmienił się kanał głosowy. Bez ograniczeń każdy bot dostawałby każde zdarzenie z każdego serwera.
Intencje to filtr. W pierwszej wiadomości, jaką bot wysyła po połączeniu, podaje listę żądanych intencji jako jedną liczbę. Discord wysyła wtedy tylko pasujące zdarzenia.
Popularne intencje
- Guilds: tworzenie lub zmiany serwerów, kanałów i ról. Prawie każdy bot jej używa.
- Guild messages: wiadomości na kanałach serwera. Treść tych wiadomości wymaga intencji uprzywilejowanej, patrz niżej.
- Guild voice states: kto dołącza do kanałów głosowych lub je opuszcza. Narzędzia muzyczne i głosowe jej potrzebują.
- Guild moderation: bany i wpisy w dzienniku audytu.
- Guild message reactions: dodane lub usunięte reakcje.
Trzy intencje są szczególne: obecność, członkowie serwera i treść wiadomości. To intencje uprzywilejowane, ponieważ ujawniają więcej danych osobowych, a większe boty potrzebują dla nich dodatkowej zgody.
Dlaczego to ważne dla właścicieli serwerów
Gdy bot jest online, ale ignoruje wiadomości, dołączenia lub zmiany na kanałach głosowych, częstą przyczyną jest brakująca intencja. Może to też tłumaczyć rozłączenie z kodem błędu 4014, gdy bot prosi o intencję uprzywilejowaną, która nie jest włączona w jego ustawieniach. Artykuł błędy gateway 4004 i 4014 przy offline bota opisuje ten problem.
Intencje są też sygnałem prywatności. Bot, który prosi wyłącznie o to, czego potrzebują jego funkcje, łatwiej zdobywa zaufanie.
Intencje a Noxyr
Główny bot Noxyr jest zarządzany za ciebie. Jeśli skonfigurujesz własnego bota z własną aplikacją, w Discord Developer Portal trzeba włączyć Server Members Intent i Message Content Intent, jak wyjaśnia przewodnik konfiguracji. Są potrzebne do funkcji takich jak wiadomości powitalne i komendy z prefiksem. Jeśli własny bot jest offline, zacznij od przewodnika po botach offline.
Więcej szczegółów znajdziesz w artykule wyjaśnienie uprzywilejowanych intencji gateway.
Sprawdzanie bota, którego nie napisałeś
Jeśli zainstalowany bot zachowuje się dziwnie, zapytaj jego twórcę, jakich intencji używa i dlaczego. Dobre boty wymieniają je w dokumentacji. Przy własnym bocie otwórz Developer Portal, przejdź na stronę Bot i porównaj przełączniki z tym, o co prosi kod. Niezgodność to pierwsza rzecz do naprawienia.
Częste pytania
Co się stanie, jeśli bot nie zażąda intencji?
Discord nie wyśle mu pasujących zdarzeń. Bot pozostaje online, ale nie może reagować na te rzeczy.
Gdzie włączyć intencje dla własnego bota?
W Discord Developer Portal: otwórz swoją aplikację, przejdź do Bot i włącz uprzywilejowane intencje, których potrzebuje.
Czy wszystkie intencje są uprzywilejowane?
Nie. Uprzywilejowane są tylko obecność, członkowie serwera i treść wiadomości. Resztę można używać swobodnie.