W skrócie: Discord Developer Portal to miejsce, w którym rejestrują Państwo aplikację i jej bota. Wystarczy kliknąć New Application, wpisać nazwę i wybrać Create. Na stronie Bot przycisk Reset Token tworzy token, który portal pokazuje tylko jeden raz. Na tej samej stronie włączają Państwo Privileged Gateway Intents, ale wyłącznie te, z których bot naprawdę korzysta. Link z zaproszeniem powstaje w OAuth2 > URL Generator albo na stronie Installation jako Install Link. Sam portal nie uruchamia kodu: bot jest online tylko wtedy, gdy jego program działa na jakimś serwerze.
Hosting bota Discord? W HostValues od €1,40 miesięcznie, online w kilka minut. Zobacz plany →
Poniżej przechodzimy przez portal krok po kroku, od pustej aplikacji do bota, który jest na Państwa serwerze Discord i odpowiada na komendy. Do tego tabela intentów, gotowy przykład linku z uprawnieniami, lista typowych błędów z rozwiązaniami i sposób na bota, który działa całą dobę. Stan na 27 października 2026 roku, Discord API v10.
Do czego służy Discord Developer Portal
Pod adresem discord.com/developers/applications logują się Państwo zwykłym kontem Discord. Portal, nazywany też krótko „discord dev portal”, jest rejestrem Państwa aplikacji. Każda aplikacja ma tu swój identyfikator, ustawienia instalacji, uprawnienia, a jeśli jest botem, także token i intenty. Kod bota powstaje osobno, na przykład w discord.js (Node.js), discord.py (Python) albo JDA (Java), i działa na komputerze lub serwerze, na którym go Państwo uruchomią.
Po otwarciu aplikacji w menu po lewej stronie znajdą Państwo między innymi cztery strony, które są ważne dla bota:
- General Information: nazwa, opis, ikona, Application ID i Public Key.
- Installation: miejsca, w których można zainstalować aplikację, oraz stały link instalacyjny.
- OAuth2: między innymi URL Generator, w którym ręcznie składa się link z zaproszeniem.
- Bot: token, ustawienie Public Bot i sekcja Privileged Gateway Intents.
W 2026 roku zmieniły się trzy rzeczy, których starsze poradniki jeszcze nie uwzględniają:
- Język portalu. Od odświeżenia z 9 marca 2026 portal używa tego samego języka, który ustawili Państwo w aplikacji Discord. W tym artykule podajemy angielskie nazwy z dokumentacji Discorda. Jeśli Państwa Discord działa po polsku, przyciski mogą nosić polskie nazwy, ale znajdują się w tych samych miejscach.
- Nowy próg dla intentów. Od 10 czerwca 2026 o swobodnym dostępie do uprzywilejowanych intentów decyduje liczba użytkowników aplikacji (10 000), a nie liczba serwerów.
- Nowy adres dokumentacji. Oficjalna dokumentacja dla deweloperów znajduje się teraz pod adresem docs.discord.com/developers.
Przed startem warto przygotować serwer testowy, na którym mają Państwo uprawnienie Manage Server (zarządzanie serwerem). Bez tego uprawnienia nie da się dodać bota do serwera. Discord zaleca, aby nową aplikację testować na serwerze, z którego aktywnie nie korzystają inne osoby.
Tworzenie aplikacji i bota krok po kroku
- Po zalogowaniu klikają Państwo w prawym górnym rogu New Application.
- Wpisują Państwo nazwę aplikacji i potwierdzają przyciskiem Create.
- Portal otwiera stronę General Information. Tu widać Application ID i Public Key.
- Przechodzą Państwo na stronę Bot. Według dokumentacji nowe aplikacje mają użytkownika bota włączonego od razu, więc nie trzeba go już osobno dodawać.
Application ID jest publiczne. W linku z zaproszeniem występuje jako parametr client_id. Public Key służy do sprawdzania, czy żądania HTTP rzeczywiście pochodzą od Discorda. Potrzebują go tylko aplikacje, które odbierają interakcje przez własny adres (Interactions Endpoint URL). Bot, który łączy się przez Gateway, jak typowy bot w discord.js lub discord.py, nie korzysta z niego.
Na stronie Bot są jeszcze dwa przełączniki, które warto ustawić od razu:
- Public Bot: gdy jest wyłączony, tylko właściciel aplikacji może dodać bota do serwerów. Gdy jest włączony, każdy, kto ma link, może dodać bota na serwer, na którym ma odpowiednie uprawnienia. Bot tylko dla własnej społeczności może pozostać prywatny.
- Requires OAuth2 Code Grant: po włączeniu każda osoba dodająca bota musi przejść pełny proces OAuth2. Proszę zostawić tę opcję wyłączoną, jeśli nie budują Państwo własnego logowania przez OAuth2.
Token bota: kopiowanie, przechowywanie, reset
Token to hasło bota. Kto go zna, może zalogować się jako Państwa bot i działać na każdym serwerze, na którym ten bot jest. Dlatego portal nie pokazuje go drugi raz.
- Na stronie Bot w sekcji Token klikają Państwo Reset Token i potwierdzają komunikat.
- Od razu kopiują Państwo nowy token przyciskiem Copy, najlepiej do menedżera haseł albo do pliku
.envprojektu. Dokumentacja Discorda ostrzega, że tokenu nie zobaczą Państwo ponownie, chyba że wygenerują nowy. - Jeśli token zginie, wystarczy kliknąć Reset Token jeszcze raz. Stary token przestaje wtedy działać, a nowy trzeba wpisać wszędzie, gdzie bot jest uruchomiony.
Token to coś innego niż Application ID i coś innego niż Client Secret. Do logowania bota służy wyłącznie token. Przechowują go Państwo w pliku .env, który nie trafia do repozytorium:
DISCORD_TOKEN=tutaj_wklej_token
Do pliku .gitignore dopisują Państwo linię .env. Tokenu nie należy wklejać do kodu, na czat, do zgłoszenia ani na zrzut ekranu. Jeśli trafił gdziekolwiek publicznie, proszę od razu kliknąć Reset Token, wpisać nowy token do .env i uruchomić bota ponownie.
Privileged Gateway Intents: kiedy je włączyć
Przez intenty bot informuje Discorda, jakie zdarzenia chce otrzymywać przez Gateway. Trzy z nich są uprzywilejowane, bo dają dostęp do wrażliwych danych. Włącza się je ręcznie na stronie Bot w sekcji Privileged Gateway Intents i zapisuje zmiany.
| Przełącznik | Nazwa w API | Co udostępnia | Kiedy jest potrzebny |
|---|---|---|---|
| Presence Intent | GUILD_PRESENCES (1 << 8) | zdarzenie PRESENCE_UPDATE: status i aktywności członków | statystyki aktywności, role zależne od statusu |
| Server Members Intent | GUILD_MEMBERS (1 << 1) | dołączenia, zmiany i wyjścia członków serwera | wiadomości powitalne, automatyczne role, licznik członków |
| Message Content Intent | MESSAGE_CONTENT (1 << 15) | treść, embedy, załączniki, komponenty i ankiety w wiadomościach | komendy z prefiksem, na przykład !pomoc, moderacja treści |
Bez Message Content Intent bot dostaje puste pola zamiast treści wiadomości. Wyjątki według dokumentacji: wiadomości wysłane przez samego bota, wiadomości prywatne do bota, wiadomości, w których bot jest wspomniany, oraz wiadomość, na której ktoś użył komendy z menu kontekstowego bota. Komendy slash nie wymagają tego intentu, dlatego nowy bot najlepiej od początku opiera się na nich.
Próg 10 000 użytkowników. Jeśli aplikacja jest dostępna dla mniej niż 10 000 użytkowników, intenty włączają Państwo w portalu jednym kliknięciem. Discord liczy unikalnych użytkowników, którzy mają dostęp do aplikacji na wszystkich serwerach, na których jest zainstalowana. Po przekroczeniu progu portal wyświetla powiadomienie i od tej chwili mają Państwo 90 dni na złożenie wniosku. W czasie rozpatrywania aplikacja działa dalej z intentami, o które Państwo wnioskują. Przyznany dostęp trzeba potwierdzać co roku. Weryfikacja aplikacji to osobna procedura, która według dokumentacji jest wymagana od 100 serwerów.
Intent musi się zgadzać w dwóch miejscach: w portalu i w kodzie. Jeśli kod prosi o intent uprzywilejowany, który w portalu jest wyłączony, Discord zamyka połączenie z kodem 4014 (Disallowed intent(s)). Zmiana w portalu działa dopiero przy nowym połączeniu z Gateway, więc po każdej zmianie proszę zrestartować bota. Przykład w discord.js 14 dla bota powitalnego, który potrzebuje Server Members Intent:
require('dotenv').config();
const { Client, Events, GatewayIntentBits } = require('discord.js');
const client = new Client({
intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMembers],
});
client.once(Events.ClientReady, (c) => console.log(`Zalogowano jako ${c.user.tag}`));
client.on(Events.GuildMemberAdd, (member) => console.log(`Nowy członek: ${member.user.tag}`));
client.login(process.env.DISCORD_TOKEN);
W discord.py 2.7 discord.Intents.default() włącza wszystko poza presences, members i message_content. Uprzywilejowane intenty dodaje się pojedynczo:
import os
import discord
from dotenv import load_dotenv
load_dotenv()
intents = discord.Intents.default()
intents.message_content = True # tylko gdy przełącznik w portalu jest włączony
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print(f"Zalogowano jako {client.user}")
client.run(os.getenv("DISCORD_TOKEN"))
Pakiet dotenv (Node.js) lub python-dotenv (Python) wczytuje token z pliku .env. Proszę dodać go do package.json albo do requirements.txt.
Zaproszenie bota: Install Link lub OAuth2 URL Generator
Bot trafia na serwer przez autoryzację OAuth2, a nie przez zwykłe zaproszenie na serwer. Discord daje do wyboru dwie drogi.
Droga 1: OAuth2 > URL Generator.
- Na stronie OAuth2 otwierają Państwo URL Generator.
- W sekcji Scopes zaznaczają Państwo bot i applications.commands. Według dokumentacji applications.commands jest dołączany do bot domyślnie, ale samouczki Discorda zaznaczają oba.
- Poniżej pojawia się sekcja Bot Permissions. Proszę zaznaczyć tylko te uprawnienia, których bot potrzebuje.
- Na dole kopiują Państwo Generated URL, otwierają go w przeglądarce, wybierają serwer i zatwierdzają przyciskiem Authorize.
| Uprawnienie | Nazwa w API | Wartość | Do czego |
|---|---|---|---|
| View Channels | VIEW_CHANNEL | 1024 | widzieć kanały |
| Send Messages | SEND_MESSAGES | 2048 | wysyłać wiadomości |
| Embed Links | EMBED_LINKS | 16384 | wysyłać embedy |
| Read Message History | READ_MESSAGE_HISTORY | 65536 | czytać historię kanału |
| Connect | CONNECT | 1048576 | wchodzić na kanał głosowy |
| Speak | SPEAK | 2097152 | mówić na kanale głosowym |
| Administrator | ADMINISTRATOR | 8 | wszystkie uprawnienia, pomija ustawienia kanałów |
Liczba w parametrze permissions to suma wybranych wartości. Bot tekstowy z czterema pierwszymi uprawnieniami ma 1024 + 2048 + 16384 + 65536 = 84992:
https://discord.com/oauth2/authorize?client_id=TWOJE_APPLICATION_ID&scope=bot+applications.commands&permissions=84992
Uprawnienia Administrator lepiej nie nadawać. Według dokumentacji daje ono wszystkie uprawnienia i omija ograniczenia ustawione na kanałach, więc przejęty bot mógłby zrobić na serwerze wszystko.
Droga 2: Installation > Install Link. Z tej drogi korzysta aktualny przewodnik Discorda dla początkujących. Na stronie Installation w sekcji Installation Contexts nowe aplikacje mają domyślnie tylko Guild Install, czyli instalację na serwerze. User Install potrzebny jest tylko wtedy, gdy użytkownicy mają używać komend na własnym koncie. W sekcji Install Link wybierają Państwo Discord Provided Link (pozostałe opcje to Custom URL i None). Pojawi się wtedy sekcja Default Install Settings: dla Guild Install dodają Państwo zakresy bot i applications.commands oraz uprawnienia. Taki link nie zawiera zakresów ani uprawnień w adresie, Discord pyta o nie przy instalacji. Discord Provided Link obsługuje tylko te dwa zakresy. Po otwarciu linku wybierają Państwo „Add to server”.
W obu przypadkach serwer pojawia się na liście tylko wtedy, gdy mają Państwo na nim uprawnienie Manage Server. Po dodaniu bot widnieje na liście członków jako offline, dopóki nie uruchomią Państwo jego kodu.
Bot online 24/7
Portal tylko rejestruje bota. Bot jest online wyłącznie wtedy, gdy działa jego program. Na domowym komputerze kończy się to przy wyłączeniu, uśpieniu laptopa albo restarcie po aktualizacji systemu. Jeśli inni polegają na bocie, potrzebuje on maszyny, która działa bez przerwy. Bot ma grać muzykę? Co jest przy tym ważne, opisujemy w artykule Discord music bot. Tak wygląda to na hostingu bota Discord w HostValues:
- Zamawiają Państwo pakiet. Serwer jest gotowy zaraz po płatności.
- Wgrywają Państwo pliki bota w zakładce File managers (menedżer plików) albo przez SFTP, bez folderu
node_modules. - Plik
.envz tokenem tworzą Państwo w menedżerze plików albo wgrywają przez SFTP. - W zakładce Startup wybierają Państwo środowisko, a w polu Docker Image wersję: Node.js 18, 20, 22, 24 lub 26, Python 3.11 albo Java 17 lub 21. Jako plik startowy wpisują Państwo na przykład
index.js,bot.pyalbo plik.jar. - Pakiety: przy Node.js panel uruchamia
npm install, jeśli jest plikpackage.json, a przy Pythonie instaluje pakiety zrequirements.txt. Jeśli konsola mimo to pokazuje „Cannot find module”, proszę kliknąć Reinstall Server w zakładce Settings. - Bota uruchamiają Państwo w zakładce Console. Gdy pojawi się komunikat ze zdarzenia ready, na przykład „Zalogowano jako…”, bot jest online.
Jeśli proces się zawiesi, panel automatycznie uruchomi go ponownie. Gdy bot znów padnie krótko po restarcie, panel go nie uruchamia, aby błąd w kodzie nie wywołał niekończącej się pętli; przyczynę widać wtedy w konsoli. Ustawienia, poziomy czy dane ekonomii mogą Państwo trzymać w bazie MySQL, którą tworzy się w zakładce Databases i obsługuje przez phpMyAdmin. Instrukcję z panelem krok po kroku opisuje artykuł jak uruchomić bota Discord, a porównanie darmowego hostingu i pakietu botowego znajdą Państwo w tekście Bot Discord 24/7 online.
| Pakiet | RAM | Dysk NVMe | Cena miesięcznie | Zamówienie |
|---|---|---|---|---|
| Small | 1 GB | 5 GB | €1,40 | Zamów Small |
| Medium | 2 GB | 10 GB | €2,80 | Zamów Medium |
| Pro | 4 GB | 20 GB | €5,60 | Zamów Pro |
Ceny zawierają VAT, a pakiet można wypowiedzieć co miesiąc. Przy płatności kwartalnej obowiązuje 10% rabatu, przy rocznej 15%. Prosty bot w discord.js zużywa zwykle 100 do 200 MB, bot w discord.py często 80 do 150 MB, więc Small wystarcza większości botów.
Najczęstsze błędy
| Objaw | Przyczyna | Rozwiązanie |
|---|---|---|
| „An invalid token was provided.” (discord.js), „Improper token has been passed.” (discord.py) lub kod zamknięcia 4004 | Token jest nieaktualny po resecie, skopiowany niecały albo ze spacją lub cudzysłowem w .env | Wygenerować nowy przez Reset Token i wpisać go dokładnie |
| „Used disallowed intents” (discord.js), PrivilegedIntentsRequired (discord.py) lub kod 4014 | Kod prosi o intent uprzywilejowany, który w portalu jest wyłączony lub nieprzyznany | Włączyć przełącznik na stronie Bot albo usunąć intent z kodu, potem restart |
| Kod zamknięcia 4013 | Wartość intentów jest źle policzona | Ustawiać intenty przez bibliotekę, a nie ręcznie liczbą |
Bot jest online, ale nie reaguje na komendy z !; discord.py ostrzega „Privileged message content intent is missing, commands may not work as expected.” | Bez Message Content Intent treść wiadomości jest pusta | Włączyć intent w portalu i w kodzie albo przejść na komendy slash |
| Brak wiadomości powitalnych | Brakuje Server Members Intent | Włączyć go w portalu i w kodzie |
| Państwa serwera nie ma na liście przy zaproszeniu | Brak uprawnienia Manage Server na tym serwerze | Poprosić administratora serwera o otwarcie linku |
| Inni nie mogą dodać bota | Public Bot jest wyłączony | Włączyć Public Bot, jeśli bot ma być publiczny |
| Bot znika, gdy komputer jest wyłączony | Program działa tylko na Państwa komputerze | Uruchomić bota na serwerze działającym bez przerwy |
Jeszcze jedna zmiana dla botów, które przeglądają listę kanałów: od 16 listopada 2026 zapytanie o kanały serwera przez HTTP pomija kanały, do których bot nie ma uprawnienia View Channels. Szczegóły podaje dziennik zmian Discorda.
Najczęstsze pytania
Gdzie znajdę token bota w Discord Developer Portal?
Na stronie Bot w sekcji Token. Portal pokazuje token tylko raz, zaraz po kliknięciu Reset Token. Jeśli go Państwo nie zapisali, trzeba wygenerować nowy; stary przestaje wtedy działać i należy go wymienić wszędzie, gdzie bot jest uruchomiony.
Których Privileged Gateway Intents potrzebuje mój bot?
Tylko tych, bez których dana funkcja nie zadziała. Komendy slash nie potrzebują żadnego. Wiadomości powitalne wymagają Server Members Intent, komendy z prefiksem typu !pomoc wymagają Message Content Intent, a statystyki statusu Presence Intent.
Czym różni się Application ID od tokenu bota?
Application ID jest publiczne i trafia do linku z zaproszeniem jako client_id. Token jest tajny: służy botowi do logowania w Discordzie, a kto go ma, ten steruje botem.
Czy mój bot Discord musi przejść weryfikację?
Weryfikacja aplikacji jest według dokumentacji wymagana od 100 serwerów. Dla Privileged Gateway Intents od 10 czerwca 2026 obowiązuje osobny próg: powyżej 10 000 użytkowników trzeba złożyć wniosek o dostęp i odnawiać go co roku.
Dlaczego bot jest offline, gdy wyłączę komputer?
Bo bot działa tylko wtedy, gdy działa jego program, a Discord Developer Portal niczego nie uruchamia. Żeby bot był dostępny całą dobę, potrzebuje serwera, który pracuje bez przerwy, na przykład pakietu botowego w HostValues od €1,40 miesięcznie.
Państwa bot Discord zawsze online
Od €1,40 miesięcznie. Online w kilka minut, bez zobowiązań, z ochroną DDoS.
Zobacz plany Zamów terazPierwszy raz w HostValues? Z kodem WELKOM10 otrzymają Państwo 10% zniżki na pierwsze zamówienie.