⚠️ Koniecznie przeczytaj przed użyciem
Automatyzowanie osobistego konta (self-bot) za pomocą programów narusza warunki świadczenia usług Discord, a konto może zostać zablokowane. Jest to nieodłączne założenie tej usługi: podajesz dane uwierzytelniające własnego konta i samodzielnie ponosisz ryzyko. Zdecydowanie zaleca się użycie specjalnie utworzonego konta dodatkowego, a nie konta głównego.Wdrażanie usługi
Wejdź do konsoli → aplikacje, znajdź Discord Agent Proxy i utwórz aplikację. Po utworzeniu najpierw aktywuj subskrypcję, następnie przejdź do strony konfiguracji, wprowadź dane uwierzytelniające swojego konta Discord i wdroż usługę. Zasoby instancji są konfigurowane automatycznie przez platformę, bez konieczności wyboru specyfikacji. Po przesłaniu wdrożenia przejdziesz na stronę zarządzania aplikacją, z takim samym układem „Przegląd / Logi / Dokumentacja” jak przy wdrażaniu Telegrama i WeChat. „Przegląd” pokazuje status instancji i subskrypcji oraz potwierdza przez zapytanie do konta, czy Discord jest połączony; poprawne działanie kontenera nie oznacza, że konto na pewno jest połączone. Karta konta Discord w sekcji „Przegląd” udostępnia dwie informacje dotyczące dostępu:Przeglądanie i testowanie interfejsów w konsoli
Otwórz zakładkę „Dokumentacja” tej aplikacji, aby zobaczyć parametry żądań, strukturę odpowiedzi wszystkich 14 operacji REST, a także przykłady w językach Shell, Python, JavaScript i innych. Adres instancji oraz token dostępu zostaną wypełnione automatycznie; token jest domyślnie ukryty. WybierzGET /api/whoami i kliknij „Testuj”, aby potwierdzić konto, z którym połączony jest proxy. Operacje takie jak wysyłanie, edytowanie lub usuwanie wiadomości będą wykonywane na rzeczywistym koncie Discord, dlatego przed testowaniem potwierdź zawartość żądania.
„Pobierz OpenAPI (JSON)” umożliwia wyeksportowanie pełnej definicji interfejsu. Plik zawiera adres instancji, ale nie zawiera tokenu dostępu. Jeśli chcesz zmienić dane uwierzytelniające konta Discord, wybierz „Wdróż ponownie” w sekcji „Przegląd”, wprowadź nowe dane uwierzytelniające i prześlij je.
Jak uzyskać dane uwierzytelniające konta Discord
- Zaloguj się do Discord w przeglądarce na komputerze (discord.com/app)
- Naciśnij
F12, aby otworzyć narzędzia deweloperskie, i przejdź do panelu Network (Sieć) - Kliknij dowolny kanał w Discord i obserwuj listę żądań
- Otwórz dowolne żądanie wysłane do
discord.com/apii znajdź poleauthorizationw sekcji Request Headers (Nagłówki żądania) - Skopiuj jego wartość
Sposób uwierzytelniania
Z wyjątkiem/health i /readyz, wszystkie interfejsy wymagają przekazania tokenu dostępu w nagłówku żądania:
Uwaga: ta usługa akceptuje uwierzytelnianie wyłącznie przez nagłówek żądania i nie obsługuje sposobu dołączania tokenu do adresu URL, takiego jak?token=xxx. Bezpośrednie otwarcie adresu interfejsu w przeglądarce zwróci401 unauthorized; jest to normalne zjawisko i nie oznacza niepowodzenia wdrożenia. Aby potwierdzić, że proces działa, odwiedź/health; aby potwierdzić, czy połączenie Discord może obsłużyć żądania, odwiedź/readyz. Oba te sondowania nie wymagają uwierzytelniania. Gdy token dostępu proxy nie jest skonfigurowany, chronione interfejsy zwracają503i nie są udostępniane anonimowo.
Sprawdzanie statusu usługi
/health oznacza jedynie, że proces HTTP jest aktywny:
/readyz oznacza, czy Discord Gateway jest dostępny. Gdy połączenie działa prawidłowo, zwraca HTTP 200:
Używanie w kliencie AI (MCP)
Na przykładzie Claude Code:claude_desktop_config.json; jeśli obecnie potrzebujesz statycznego nagłówka Bearer, użyj Claude Code lub klienta wyraźnie obsługującego tę funkcję.
Po zakończeniu konfiguracji możesz bezpośrednio wydawać AI polecenia w języku naturalnym, aby obsługiwało Discord, na przykład:
Sprawdź, czy mam nowe wiadomości na kanale „dyskusja o projekcie”, a jeśli ktoś zapytał o datę publikacji, pomóż mi odpowiedzieć, że w ten piątek.
Dostępne narzędzia
Użycie w programie (REST API)
Wszystkie interfejsy REST są dostępne pod/api, treść odpowiedzi ma ujednoliconą postać {"data": ...}, a w przypadku błędu {"error": "..."}.
Sprawdzenie bieżącego konta
Wysłanie wiadomości
Idempotency-Key, a proces zwróci pierwszy wynik bez ponownego wysyłania. Ponowne uruchomienie instancji wyczyści maksymalnie 5 000 przechowywanych w pamięci rekordów deduplikacji, dlatego wywołujący nadal musi samodzielnie śledzić długoterminowy status dostarczania.
Opcjonalny parametr reply_to służy do odpowiedzi na wskazaną wiadomość:
Odczytywanie wiadomości
Pełna lista interfejsów
Jak uzyskać ID kanału i ID użytkownika
W kliencie Discord kolejno otwórz Ustawienia użytkownika → Zaawansowane, a następnie włącz Tryb dewelopera. Następnie kliknij prawym przyciskiem myszy dowolny kanał lub użytkownika — w menu pojawi się opcja „Kopiuj ID”. Możesz także bezpośrednio wywołaćGET /api/guilds oraz GET /api/guilds/{guild_id}/channels, aby je wyliczyć.
Częste pytania
Zwracane jest401 unauthorized
Token dostępu jest nieprawidłowy albo został przekazany za pomocą ?token=. Upewnij się, że token jest przekazywany w nagłówku żądania Authorization: Bearer <token> i jest zgodny z tym wyświetlanym w konsoli.
Zwracane jest 503
Połączenie z Discordem nie zostało jeszcze ustanowione. Najpierw odwiedź /readyz, aby sprawdzić gateway_ready; jeśli przez długi czas ma wartość false, najczęściej dane uwierzytelniające konta wygasły — pobierz je ponownie i wdroż ponownie.
Zwracane jest 403 lub 404
Samo konto nie ma odpowiednich uprawnień (na przykład nie znajduje się na tym serwerze lub nie ma prawa pisać na tym kanale) albo ID zostało wpisane nieprawidłowo. Tego typu błędy pochodzą z Discorda, a nie są problemem usługi pośredniczącej.
Zwracane jest 429
Został wywołany limit częstotliwości Discorda; pole retry_after w odpowiedzi podaje zalecaną liczbę sekund oczekiwania. Zmniejsz częstotliwość wywołań.
Konto zostaje zablokowane po wysłaniu wiadomości
Jak wspomniano wcześniej, automatyzowanie operacji na osobistych kontach narusza warunki świadczenia usług Discorda. Używaj dedykowanego dodatkowego konta oraz kontroluj częstotliwość operacji i unikaj wrażliwych zachowań, takich jak masowe wysyłanie wiadomości.

