Funkcja Webhooków wbudowana w Discorda jest prostym sposobem na wysyłanie zautomatyzowanych wiadomości oraz aktualizacji na kanał tekstowy na serwerze.
Pomyśl o nich, jak o poczcie pneumatycznej, którą wysyłasz wiadomości do Discorda z innej platformy.
Tworząc webhookowy endpoint na serwerze, wygenerujesz adres URL, którego możesz użyć w różnych usługach, aby połączyć je z Discordem.
Co prawda wszyscy kochają pocztę pneumatyczną (100% prawdy), ale trzeba pamiętać, że webhooki wymagają drugiej strony do działania (choć użytkownicy o skłonnościach programistycznych mogą spróbować skombinować własną pocztę).
Niektóre usługi i strony z łatwością pozwalają na dołączenie webhooka i wysyłanie wiadomości, a pozostałe nie. Poniżej mała lista:
Mogą używać webhooków: | Nie mogą używać webhooks: |
GitHub | Twitch / YouTube |
CircleCI | Nelly The Hamster |
DataDog |
Tworzenie Webhooka
Mając to na uwadze, jeśli chcesz wrzucać na swój serwer Discorda prośby dodawane lub usuwane z GitHuba albo śledzić dane z DataDoga, albo coś w tym stylu, można to zrobić tak:
- Otwórz zakładkę Webhooki w Ustawieniach serwera:
- Kliknij na przycisku Tworzenie Webhooka!
W kolejnym oknie będziesz mieć kilka opcji:
- Edycja awatara: Kliknij na obrazku, aby zmienić awatar.
- Wybór kanału dla Webhooka: Kanał na treść Webhooka wybiera się z rozwijanego menu.
- Nazwa Webhooka: Dobry sposób, by rozróżnić Webhooki i usługi, w których je zamieszczasz.
Masz tu też adres URL, który możesz umieścić na stronach, z których chcesz otrzymywać wiadomości.
Szybki przykład: Integracja Webhooka na GitHubie
Jako że Webhooki nie mogą funkcjonować same i trzeba je umieszczać na stronach, żeby działały, pomyśleliśmy, że dobrze byłoby zawrzeć przykładową integrację dla entuzjastów GitHuba molów kodowych.
Możesz wykorzystać Webhooki, żeby przesyłać dowolne aktualizacje swojego repozytorium na kanał tekstowy na swoim serwerze.
1. Skopiuj adres URL Webhooka dla kanału/serwera, na który chcesz otrzymywać wiadomości:
Na moim serwerze stworzyłem kanał tekstowy #githubaktualizacje. Chcę, żeby moje aktualizacje repozytorium trafiał na niego, więc kopiuję adres URL kanału:
2. Dodaj URL Webhooka do ustawień repozytorium GitHuba.
Wybierz repozytorium, z którego chcesz otrzymywać aktualizacje na serwerze Discorda. Po wybraniu repozytorium przejdź do Ustawień > menu webhooków
Pięknie. Kliknij na przycisku "Dodaj Webhook" i wpisz adres URL wygenerowany w Discordzie w polu "Payload URL".
Aby webhook wyświetlał wiadomość prawidłowo, bardzo, bardzo, bardzo, BARDZO, bardzo istotne jest dodanie '/github' na jego końcu. Tak bardzo, że napisaliśmy to 5 razy.
Oprócz adresu URL dostępne są jeszcze opcje charakterystyczne dla GitHuba. Przy content type (rodzaju zawartości) zostaw application/json. Format Webhooka Discorda naprawdę lubi JSON. W kolejnej sekcji możesz wybrać, jakie wydarzenia wysyłają wiadomości przez Webhook.
Kliknij na przycisku "Dodaj Webhook" pod ustawieniami powiadomień o wydarzeniach i to wszystko! Wykonanie dowolnej aktualizacji repozytorium (włącznie z edycją pliku readme) wyświetli się na twoim kanale tekstowym:
Jesteś gotowy! GitHub to tylko jeden z przykładów integracji pozwalającej na publikację przez Webhook. Jeśli masz smykałkę do pisania aplikacji w JSON lub zapytania HTTP POST i chcesz dostosować Webhooki pod siebie, więcej informacji znajdziesz w naszej dokumentacji dla deweloperów.