Integracja Discord: logowanie, role po zakupie i webhooki
Gracz loguje się na stronie kontem Discord, po zakupie rangi dostaje rolę na serwerze, a po wygaśnięciu ją traci. Zamówienia i zdarzenia trafiają na kanały jako czytelne powiadomienia. Wszystko w limitach API, które Discord egzekwuje twardo.
Discord to część produktu, nie dodatek
Dla serwerów gier i społeczności Discord jest miejscem, gdzie gracze naprawdę są. Integracja łączy go ze sklepem, panelem i kontem gracza.
Bot z uprawnieniem MANAGE_ROLES nadaje i zdejmuje role po zdarzeniach w sklepie. Rola i ranga w grze idą z tego samego zdarzenia.
OAuth2 z zakresem identify daje profil gracza bez hasła na Twojej stronie.
Cały ruch wychodzący do Discorda przepuszczamy przez własne webhook-proxy, które kolejkuje zdarzenia i respektuje limity.
Logowanie, dołączenie do serwera i rola
Jedno logowanie w sklepie przedstawia gracza, dodaje go do serwera i pozwala nadać mu rangę. Parametr state sprawdzamy przy każdym powrocie z Discorda, bo bez niego logowanie jest podatne na CSRF.
Logowanie i dołączenie do serwera
Gracz loguje się w sklepie kontem Discord, a z zakresem guilds.join bot od razu dodaje go do serwera i pisze do niego prywatnie. Dodać gracza może tylko bot tej samej aplikacji, który już jest na serwerze i może tworzyć zaproszenia. Pierwsza wiadomość może od razu przeprowadzić weryfikację: bot prosi o adres e-mail i wysyła kod, a do czasu potwierdzenia gracz ma rolę Oczekujący. Po wpisaniu kodu bot zdejmuje tę rolę, nadaje Zweryfikowany i odsyła gracza na kanał powitań. Przy logowaniu prosimy tylko o zakresy, których używamy, bo każdy dodatkowy zniechęca do logowania.
Rola po opłaconym zakupie
Opłacone zamówienie nadaje rolę VIP, a bot potwierdza to na kanale zakupów razem z numerem zamówienia i datą wygaśnięcia. Po terminie albo zwrocie rolę zdejmuje ten sam mechanizm, bez moderatora: codzienne zadanie zdejmuje role, którym minął termin, w tempie zgodnym z limitami Discorda. Gracz sprawdza swoje rangi komendą i przy każdej widzi, skąd pochodzi: ze sklepu z datą końca, z serwera gry albo wybrana na kanale powitań. Codzienne uzgodnienie porównuje role na serwerze z zakupami, więc rola nadana ręcznie albo zgubiona nie żyje własnym życiem, a gracz, który wyjdzie z serwera i wróci, odzyskuje rangę, jeśli zakup jest wciąż ważny.
Jedno konto w sklepie i na serwerze
Gdy gracz pisze w sprawie zamówienia, zespół wie, o czyj zakup chodzi: konto na serwerze jest tym samym kontem, które płaciło w sklepie. Bot zakłada prywatny kanał zgłoszenia, widoczny tylko dla gracza i zespołu, oznacza wsparcie i daje przyciski do przejęcia i zamknięcia sprawy. Po zamknięciu zapis rozmowy trafia do archiwum zgłoszeń jako plik, więc przy kolejnym pytaniu o to samo zamówienie historia jest pod ręką. Powiadomienia o zamówieniach, zgłoszeniach i awariach mogą trafiać na kanały samym webhookiem, bez bota.
Rola po zakupie, z obsługą limitów
Nadanie roli to jedno wywołanie PUT na rolę członka serwera, które przy sukcesie zwraca 204. Reszta to reakcja na to, co Discord może odpowiedzieć.
Równe tempo w limicie
Kolejka trzyma tempo w globalnym limicie 50 zapytań na sekundę na bota, także przy masowym nadawaniu ról.
Gdy Discord prosi o przerwę, czekamy
Kolejka czeka tyle sekund, ile podał Discord, i dopiero wtedy ponawia. Zgadywanie przerwy kończy się kolejnymi odmowami.
403 i 404 bez ponawiania
403 to brak uprawnień albo rola nad rolą bota, 404 to zwykle gracz spoza serwera. Nie ponawiamy ich, bo 403 liczy się do limitu 10 000 błędnych odpowiedzi na 10 minut, a 404 nie zniknie po ponowieniu.
Webhook czy bot
Nie każda integracja z Discordem potrzebuje bota.
Co może zrobić na serwerze
Webhook publikuje wiadomość na jednym kanale. Role zależne od zakupów, dodawanie graczy przy logowaniu i komendy wymagają bota.
Co trzeba ustawić
Webhookowi wystarczy adres w konfiguracji i czytelne embedy, więc to najszybsze wdrożenie. Bot to aplikacja Discord na serwerze i kolejka operacji po Twojej stronie.
Co wie o graczu
Webhook nie zna gracza. Bot nadaje rolę temu, kto zalogował się w sklepie kontem Discord.
Ile zmieści jedna wiadomość
Ten sam limit dla obu: do 10 embedów i łącznie 6000 znaków. Długie raporty dzielimy na kilka wiadomości.
Najczęstsze pytania o integrację z Discordem
Odpowiedzi o rolach, logowaniu, panelu hostingu i wycenie.
Czytaj dalej
Inne integracje dla gier i społeczności.
Chcesz połączyć Discord ze sklepem albo panelem?
Napisz, co ma się dziać na serwerze po zakupie albo logowaniu. Odpowiemy w godzinę z pytaniami i wyceną.




