Utwórz webhook Discord, zbuduj payload JSON (content, username, avatar_url, embeds) z limitami znaków liczonymi na żywo i skopiuj gotowy kod curl, JavaScript i Python.
Webhook Discord to tajny adres URL powiązany z jednym kanałem. Wyślij metodą POST treść JSON z content (do 2000 znaków), embeds (do 10) lub obydwoma, a wiadomość pojawi się na tym kanale pod nazwą webhooka. Nie potrzebujesz bota ani logowania, i właśnie dlatego każdy, kto ma ten adres URL, może publikować.
Najczęściej używane pola Execute Webhook
Pole
Typ
Uwagi
Tekst wiadomości, do 2000 znaków
Nadpisuje nazwę webhooka dla tej wiadomości
Nadpisuje awatar webhooka dla tej wiadomości
Do 10 obiektów rich embed
Ogranicza, które @wzmianki faktycznie powiadamiają
thread_id (query)
Publikuje w wątku na kanale
wait (query)
true zwraca utworzoną wiadomość zamiast 204
Webhooki to najszybszy sposób na przesyłanie alertów, zgłoszeń z formularzy czy powiadomień o wdrożeniach na kanał Discord. Kreator poniżej pisze za Ciebie JSON, liczy znaki względem limitów Discorda podczas pisania i zamienia wynik w kod curl, JavaScript i Python, który wkleisz do skryptu lub na serwer. Sam niczego nie wysyła, więc adres URL Twojego webhooka nigdy nie opuszcza Twojego komputera.
W ustawieniach swojego serwera Discord utwórz webhook dla kanału, na którym chcesz publikować.
Wybierz kanał, ustaw nazwę i awatar, a potem skopiuj adres URL webhooka.
Wypełnij kreator poniżej i skopiuj wygenerowany kod.
Uruchom go z terminala lub na serwerze, z adresem URL w zmiennej środowiskowej.
Traktuj adres URL jak hasło. Trzymaj go w zmiennej środowiskowej, z dala od kodu front-endu i publicznych repozytoriów.
Jeśli adres URL wycieknie, usuń ten webhook w ustawieniach serwera i utwórz nowy; stary adres przestanie działać.
Ustaw allowed_mentions na { "parse": [] }, gdy treść zawiera dane od użytkowników, aby nikt nie mógł wywołać @everyone.
Dodaj ?wait=true, gdy potrzebujesz identyfikatora wiadomości, na przykład aby później ją edytować lub usunąć.
Kolor embeda to liczba całkowita w systemie dziesiętnym, więc kolor szesnastkowy 4F98FB wysyłasz jako 5216507.
Najczęściej zadawane pytania
Jak zdobyć adres URL webhooka Discord?
Potrzebujesz uprawnienia Zarządzanie webhookami na serwerze lub kanale. W ustawieniach swojego serwera Discord utwórz webhook dla kanału i skopiuj jego adres URL.
Dlaczego mój webhook zwraca 400 Bad Request?
Zwykle treść jest pusta lub nieprawidłowa. Musisz wysłać co najmniej jedno z: content, embeds, components, plik lub ankietę, a content może mieć najwyżej 2000 znaków. Wyślij też nagłówek Content-Type: application/json, inaczej treść nie zostanie odczytana jako JSON.
Czy mogę wywołać webhook Discord z przeglądarki?
Nie rób tego. Każda strona, która to robi, ujawnia adres URL każdemu odwiedzającemu, który może potem publikować cokolwiek na Twoim kanale. Wysyłaj z serwera, funkcji serverless lub skryptu, a Twoja strona niech wywołuje właśnie je.
Jakie są limity embedów?
Discord podaje w dokumentacji tytuł do 256 znaków, wartości pól do 1024 znaków i łącznie 6000 znaków na tytuł, opis, nazwy i wartości pól, tekst stopki i nazwę autora we wszystkich embedach jednej wiadomości.
Czy webhook może czytać wiadomości lub odpowiadać użytkownikom?
Nie. Webhook może tylko publikować (oraz edytować lub usuwać własne wiadomości). Czytanie kanałów, reagowanie na komendy czy odpowiadanie ludziom wymaga aplikacji bota.
Co zawiera adres URL
Adres URL webhooka kończy się dwiema częściami: identyfikatorem webhooka i jego tokenem. Token to jedyne poświadczenie, dlatego dokumentacja Discorda zaznacza, że wywołanie webhooka nie wymaga żadnego innego uwierzytelnienia. Każdy, kto ma pełny adres URL, ma te same możliwości co Ty.
Content, embedy czy jedno i drugie
Zwykły content pasuje do krótkich alertów i obsługuje markdown Discorda. Embedy dają kolorowy pasek boczny, tytuł z linkiem, pola ułożone w kolumnach i stopkę, co lepiej się czyta przy danych strukturalnych, takich jak zamówienie czy raport o błędzie.
Możesz wysłać jedno i drugie w jednym wywołaniu. Content pojawia się nad embedami, a allowed_mentions decyduje, czy zawarte w nim nazwy faktycznie powiadamiają ludzi.
Wysyłanie dużej liczby wiadomości
Gdy wysyłasz zbyt szybko, Discord odpowiada statusem 429 i wartością JSON retry_after w sekundach. Respektuj ją i kolejkuj wiadomości, zamiast ponawiać w ciasnej pętli. Łączenie kilku zdarzeń w jedną wiadomość z wieloma embedami też zmniejsza liczbę wywołań.
Gotowe żądania
curl: zwykła wiadomość
Adres URL jest odczytywany ze zmiennej środowiskowej, więc nigdy nie trafia do historii powłoki ani do commita.
Node.js: embed z polami
Używa wbudowanego fetch w Node 18 i nowszych. wait=true sprawia, że Discord zwraca wiadomość, więc możesz zapisać jej identyfikator w logu.
Python z requests
json= ustawia za Ciebie nagłówek Content-Type. Status 204 oznacza, że wiadomość została opublikowana.
Kreator payloadu webhooka Discord
Wpisz wiadomość i embed, obserwuj liczniki znaków i skopiuj JSON lub kod. Z tej strony nic nie jest wysyłane.
Treść wiadomości
Nadpisanie nazwy użytkownika
Nadpisanie adresu URL awatara
Dodaj embed
Tytuł embeda
Opis embeda
Kolor embeda
Tekst stopki
Zablokuj wszystkie wzmianki (allowed_mentions parse: [])