Rehbere geç

Dokümantasyon 9.6.24

Discord entegrasyonu

Yalnız kurulu panel ve paketinizde bulunan entegrasyon kontrollerini kullanın.

Webhook kurulumu#

İlgili Discord kanalında webhook oluşturup bağlantıyı uygun entegrasyon ayarına kaydedin. Webhook adresi ve bot tokenı gizlidir. Bildirimleri açmadan önce kontrollü bir test mesajı gönderin.

Yetkiler ve sorun giderme#

Yalnız entegrasyonun ihtiyaç duyduğu Discord yetkilerini verin. Mesaj gönderilmiyorsa kayıtlı kanalı, tokenı ve sağlayıcı yanıtını inceleyin. Açığa çıkan webhook veya bot tokenını yenileyin; loglara ya da destek ekran görüntülerine yapıştırmayın.

Webhook, bot ve giriş bilgilerini karıştırmayın#

Ayarlar → Entegrasyonlar bölümünde Discord webhook adresi, bot tokenı ve OAuth istemci bilgileri ayrı alanlardır. Webhook bildirimlerin hedefini, bot tokenı bot kimliğini, OAuth bilgileri ise giriş entegrasyonunu ilgilendirir. Bir alandaki değeri başka alana kopyalamak bu akışları birbirine dönüştürmez.

Önce ne istediğinizi belirleyin: bir kanala bildirim mi, kurulu botun desteklediği bir işlem mi, yoksa Discord ile giriş mi? İlgili akışı tek başına yapılandırıp sonucunu kontrol edin. Bir webhookun çalışması bot komutlarının da hazır olduğunu veya OAuth girişinin tamamlandığını göstermez.

Bot tokenı, istemci gizli anahtarı ve webhook adresini gizli bilgi olarak ele alın. Topluluk davet bağlantısı farklıdır ve sitenizde paylaşılabilir; gizli webhook adresini sitenin Discord daveti alanına koymayın. Entegrasyon değişikliklerini yapabilen ekip üyelerinin panel izinlerini kontrol edin.

Bildirim hedefini kontrollü kurun#

Bildirimler için önce yalnızca yetkili ekibin erişebildiği bir kanal seçin. Oyuncu veya yaptırım bilgilerini herkesin görebildiği bir kanala gönderip sonra erişimi düzeltmeye çalışmak yerine hedefi baştan inceleyin.

  1. Discord’un resmi webhook rehberinden kendi kanalınız için adres oluşturun; yalnızca oluşturduğunuz adresi kullanın.
  2. Paneldeki Discord webhook alanına tam adresi kaydedin. Görünmeyen boşluk, kesilmiş adres veya farklı kanala ait eski değer olup olmadığını kontrol edin.
  3. Kurulu entegrasyonda mevcut bir test özelliği varsa onu kullanın; yoksa güvenli ve normal bir bildirim olayını izleyin. Test için oyuncu banlamayın veya gerçek ödeme başlatmayın.
  4. Beklenen kanalda mesajı, zamanını ve içeriğini kontrol edin. Mesaj yoksa aynı olayı peş peşe üretmek yerine hangi akışın başarısız olduğunu belirleyin.

Bot ve OAuth ayarlarını ayrıca doğrulayın#

Bot kuruluysa yalnızca kullandığınız işlevlerin gerektirdiği izinleri verin. Panelde token alanını doldurmak, botun çalışma ortamının veya bütün komutlarının yapılandırıldığını tek başına kanıtlamaz; kurulu paketin gerçekten sunduğu özellikleri esas alın.

OAuth için istemci kimliği ile istemci gizli anahtarını doğru alanlara kaydedin. Yönlendirme adresini kurulu giriş entegrasyonuyla eşleştirin; tahmin ettiğiniz bir callback yolunu kaydetmeyin. Önce mevcut bir yönetici oturumunu koruyarak ayrı bir tarayıcı oturumunda giriş sonucunu kontrol edin.

Başarısızlığı bildirirken akış türünü, hata zamanını ve gizli bilgiler çıkarılmış hata metnini yazın. Webhook, bot ve giriş hatalarını ayrı tarif etmek, ilgili kanal, kimlik veya giriş yapılandırmasını bulmayı kolaylaştırır.

Gizli bilgi sızdıysa#

Ekran görüntüsünde veya herkese açık dosyada token ya da webhook adresi görünmüşse paylaşımı kaldırmakla yetinmeyin. İlgili değeri sağlayıcı tarafında yenileyin, panelde güncelleyin ve eski değerin kullanıldığı diğer kurulumları kontrol edin.

  • Yeni değer doğru alana kaydedildi; eski ekran görüntüleri ve paylaşımlar kaldırıldı.
  • Normal bir bildirim veya giriş akışı yeniden doğrulandı.
  • Destek için alınan yeni görüntülerde gizli alanlar kapatıldı.
  • Kanal erişimi ve ekip izinleri yeniden gözden geçirildi.

Eksik bildirimi olaydan kanala kadar izleyin#

Discord mesajı gelmediğinde önce beklenen olayın gerçekten oluştuğunu ve o olayın kullandığı entegrasyonun yapılandırıldığını doğrulayın. Kaydedilmiş webhook adresi her olayın bildirim ürettiğini kanıtlamaz. Kimlik bilgilerini değiştirmeden önce ilgili sunucuyu veya siteyi ve olay zamanını kaydedin. Aynı zaman dilimindeki panel kaydı ile kanal geçmişini karşılaştırmak sorunun başladığı yeri daraltır.

Olağan olay panelde görünürken Discord’da yoksa hedef kanalı ve kaydedilen webhook adresini kontrol edin. Silinen webhook, değişen kanal veya eksik karakterle kopyalanan adres uygun aşamada düzeltilmelidir. Değişiklik incelenebilir kalsın diye önceki yapılandırmanın gizli olmayan bağlamını saklayın. Başka bir sunucuya ait kanalın açık olmasını kendi bildiriminizin başarısı saymayın.

Mesaj beklenmeyen kanala geldiyse yeni denemelerden önce o kanalın erişimini sınırlayın ve hedefi düzeltin. Teslimatı teşhis etmek için yaptırım olaylarını tekrar tekrar üretmeyin. Destek ekibine tam webhook adresi veya özel oyuncu bilgileri yerine olay kategorisini, zamanı ve gizli değerleri çıkarılmış hatayı verin. Hedef düzeltildikten sonra olağan bir bildirimle sonucu doğrulayın.

Entegrasyon kaydının neleri koruduğunu anlayın#

Bot token ve OAuth client secret gizli parola alanlarıdır. Mevcut ayar uygulamasında kayıt sırasında bu alanlardan birini boş bırakmak saklanan değerini korur. Bu nedenle ekranda boş görünen alan tek başına sır yapılandırılmadığı anlamına gelmez; herhangi bir değeri değiştirmeden önce alanın açıklamasını okuyun. Sadece başka bir entegrasyon alanını düzenlerken bu davranışı dikkate alın.

Kimlik bilgisini yenilerken yeni değeri kendi alanına yapıştırın ve yetkili hesapla kaydedin. Webhook URL’si ve client ID ayrı alanlara ve farklı davranışa sahiptir. Boş kayıt işlemini bot token veya OAuth sırrını iptal etme yöntemi saymayın; açığa çıkan kimlik bilgisini Discord üzerinden iptal edin. Yeni ve eski bilgiyi karıştırmamak için değiştirdiğiniz alanı belirtin.

Hangi kimlik bilgisinin ne zaman değiştiğini değerini yazmadan not edin. Ardından özel iş akışını doğrulayın: webhook için kanala teslimat, bot için mevcut bir işlev, OAuth için gerçek giriş sonucu. Bir akışın başarısı diğer ikisini doğrulamaz. Destek isterken ekran görüntüsündeki gizli alanların, tarayıcı adresinin ve oyuncu bilgilerinin görünürlüğünü birlikte kontrol edin.

Discord giriş dönüşünü güvenle teşhis edin#

Doğru websiteden yeni bir giriş denemesi başlatın ve akışı aynı tarayıcı oturumunda sürdürün. OAuth, çıkan istekle dönüşü eşleştirmek için state kullanır. Eski callback adresini açmak veya birden fazla giriş denemesini karıştırmak dönüşü mevcut oturumdan koparabilir. Hatanın hangi sayfaya dönerken oluştuğunu not edin; yalnızca webhook teslimatına bakarak giriş sorununu yorumlamayın.

Giriş geçersiz state veya benzer mesajla dönerse hatayı not edin ve callback adresini tekrar tekrar yenilemek yerine normal giriş noktasından başlayın. Tarayıcı ayarı veya eklentinin gerekli çerezleri ya da yönlendirmeyi engellemediğini kontrol edin. Araştırma sırasında mevcut yönetici oturumunu açık tutun. Denemeler arasında hesap ve websiteyi değiştirdiyseniz bunu da belirtin.

Platformun Discord hesap girişini kiralanan site için kaydedilen özel entegrasyon bilgilerinden ayırın. Client ID veya dönüş ayarını değiştirmeden önce hangi akışın başarısız olduğunu doğrulayın. Yetkilendirme kodu, state değeri, oturum bilgisi veya sır içeren callback URL’sini açık destek kanallarına göndermeyin. Hata metni, zaman ve akış tanımı ilk inceleme için daha uygundur.

Bildirim içeriğini ekip ihtiyacına göre inceleyin#

Bir bildirimin kanala ulaşması yalnız teslimatı doğrular; mesajın doğru kişilere anlaşılır bağlam sunması ayrı kontroldür. Kullanılan entegrasyonun oluşturduğu örnek olağan mesajda hangi sunucunun veya sitenin adı bulunduğunu, olayın hangi zamanı anlattığını ve işlem türünün ayırt edilebildiğini inceleyin. Mevcut mesaj biçimini okuyun; panelde henüz bulunmayan bir şablon düzenleyicisi veya filtre seçeneği varmış gibi plan yapmayın.

Kanal erişimini bu veriyi görmesi gereken ekiple sınırlandırın. Mesajı dışarı aktarırken veya ekran görüntüsü alırken oyuncu kimliklerini ve gereksiz kişisel ayrıntıları gizleyin. Ekibe bir tespit mesajının tek başına olayın tüm bağlamını taşımayabileceğini anlatın; değerlendirme için ilgili panel kaydıyla zamanı eşleştirin. Farklı sunucuların mesajları aynı kanaldaysa etiketin yeterince ayırt edici olduğunu özellikle kontrol edin.

Bir mesaj anlaşılmıyorsa olay türünü, zamanını ve gizli bilgiler çıkarılmış metni not edin. Yeni özellik varsaymak veya test için oyuncuya yaptırım uygulamak yerine mevcut entegrasyonun hangi çıktıyı ürettiğini destekle netleştirin. Bu kabul kontrolünün beklenen sonucu herkesin mesajdan aynı kaynağı ve olayı anlayabilmesi, gizli bilgilerin de gereksiz kişilere ulaşmamasıdır.

Discord hesabı seçimini ve vazgeçilen girişi kontrol edin#

OAuth girişini değerlendirirken yalnız başarılı dönüşü değil, kullanıcının yanlış Discord hesabıyla başlamasını veya izin ekranından vazgeçmesini de düşünün. Tarayıcıda daha önce açık başka Discord hesabı bulunabilir. Yetkilendirme ekranındaki kimliği okuyun ve amaçlanan hesabın seçildiğini doğrulayın. Yanlış hesapla devam etmek webhook kanalını değiştirmekle çözülecek bir bildirim sorunu değildir; kimlik akışı ayrıca ele alınmalıdır.

Kullanıcı girişten vazgeçtiğinde veya izin vermediğinde sonucu kaydedin, normal giriş noktasından yeniden başlayın. Bir önceki callback bağlantısını ekibe dağıtmayın; içinde girişe özel değerler olabilir. Başarılı dönüşten sonra görünen hesabın ve website bağlamının beklentinizle uyuştuğunu kontrol edin. Beklenmeyen hesapta yönetim işlemi yapmadan önce durun; farklı bir hesap oluşturmak ya da ücretli plan satın almak kimlik eşleşmesini doğrulamaz.

Kurulum kabul notuna kullanılan akışı, beklenen hesabı, sonucu ve hata zamanını ekleyin; token, client secret, state veya yetkilendirme kodunu eklemeyin. Platform hesabına giriş ile kiralanan site için özel entegrasyon aynı şey değildir. Hangi akışı kontrol ettiğinizi yazmanız desteğin yanlış kimlik bilgilerini değiştirmeden doğru giriş sorununu incelemesine yardımcı olur.

Botu bağımsız servis olarak kurun ve doğrulayın#

Web sitesi, webhook ve Discord botu ayrı bileşenlerdir. Web sitesinin açılması veya bir webhook mesajının gelmesi, botun Discord’a bağlandığını göstermez. Bot için uygulama Client ID, hedef Guild ID, bot tokenı ve hedef sunucudaki rol/kanal kimlikleri gerekir. Tokenı destek mesajına veya oyun resource’una koymayın.

Panelde secret alanını boş bırakmak mevcut değeri korur. Yeni bir token/API secret kaydetmek için siteye ait şifreleme anahtarı kurulmuş olmalıdır. Tokenı silmek veya yenilemek farklı işlemlerdir; maskeyi tekrar token olarak yapıştırmayın.

Servis kurulumu ile canlı etkinleştirmeyi ayırın: eksik Client ID, Guild ID, token veya veritabanı ayarı bulunan bir botun hazır görünmesi bağlantı doğrulaması değildir. Önce doctor sonucu, ardından gerçek Discord çevrimiçi durumu kontrol edilir.

Desteklenen bir Node.js LTS sürümü kullanın; bot en az Node 22 LTS gerektirir. Kurulu özel servis Node 24.21.0 LTS kullanır: /opt/tosun-discord-node/v24.21.0/bin/node. Servis örneğindeki ExecStartPre doctor kontrolü ve ExecStart aynı çalıştırılabilir dosyayı kullanır. npm ci ve doctor kontrollerini de bu runtime PATH’i ile çalıştırın. Doctor başarısızsa servis girişe geçmez; gerekli kimlik bilgileri tamamlanmadan etkinleştirmeyin.

  1. Panelde Discord Bot bölümünden Client ID ve Guild ID değerlerini kontrol edin. Kimlikleri Discord geliştirici modundan kopyalayın; ad veya davet bağlantısı kullanmayın.
  2. Yönetici, moderatör ve destek rollerini en az gerekli yetkiye göre seçin. Farklı Discord sunucusundaki Administrator yetkisi bu botun hedef sunucusunda işlem yapma hakkı vermez.
  3. Botun bağlanacağı panel veritabanını ve API adresini operatörle doğrulayın. Oyun tabloları gerektiren eski komutlar için framework ve envanter desteğini ayrıca kontrol edin; bot hesabına global veritabanı yönetim hakkı vermeyin.
  4. Operatör, seçilen site için ayrı komut ve şifreleme anahtarlarını özel ortam dosyasına kurar; ardından aynı site için ledger migration işlemini yapar. SaaS ana anahtarı başka bir müşteri botuna verilmez. Mevcut açık secret kayıtları yalnız doğru anahtar kurulduktan sonra açıkça taşınır.
  5. Bağımlılıkları kilit dosyasıyla npm ci üzerinden kurun. npm run doctor Discord’a giriş yapmadan bağlantı, ayar ve işlem kayıtlarını kontrol eder. Eksik bilgi varsa servisi açmadan tamamlayın.
  6. Token veya API bağlantısı değişince bot servisini yeniden başlatın. Bot girişinden sonra yalnız zararsız bir durum komutuyla doğru guild ve rolü doğrulayın; gerçek oyuncu, para veya ban işlemini kurulum testi olarak kullanmayın.

Komut sonucunu, belirsiz işlemi ve yeniden denemeyi ayırın#

Bot komutu önce Discord etkileşimini yanıtlar, ardından veritabanı veya API işini yapar. Bir zaman aşımı, işlemin kesinlikle gerçekleşmediğini göstermez. Aynı etkileşimin tekrar teslimi işlem kaydıyla denetlenir; yeni bir komut göndermek yeni etkileşim oluşturur.

  • Komut başka bir guild’den geldiyse veya gerekli rol yoksa reddedilir. Yetki sorununu çözmek için bütün ekibe Administrator vermeyin.
  • Tamamlanmış aynı etkileşimin tekrarı ikinci değişiklik üretmez. processing veya unknown kaydı yaşlandığı için otomatik olarak yeniden çalıştırılmaz.
  • Belirsiz cevapta yeni para, eşya, ban, resource veya sunucu komutu göndermeden önce panelde gerçek sonucu ve işlem kimliğini inceleyin. Unknown kaydını silerek tekrar açmak inceleme yerine geçmez.
  • Ekran görüntüsü, canlı izleme, sync ve diag grupları bu botun secret-only yoluyla çalışmaz; ilgili panel ekranının yetkili oturumunu kullanın. Desteklenen bir komutun listede görünmesi sunucudan sonuç alındığını kanıtlamaz.
  • Bot tokenı, imza anahtarı, veritabanı parolası veya tam isteği günlükte paylaşmayın. Destek kaydına yalnız işlem kimliği, zaman, komut adı ve hassas bilgi içermeyen sonuç yazın.

Discord gizli değerlerini AC anahtarlarından ayrı tutun#

Discord bot tokenı, webhook adresi, OAuth istemci sırrı ve Tosun panel/lisans anahtarı farklı kimlik bilgileridir. Birini diğerinin alanına yapıştırmayın. Botun çalışması webhook teslimatını, webhook teslimatı da bot komut yetkisini doğrulamaz.

Bot tokenı ve botun API/işlem anahtarları, bot servisinin özel ayarlarında veya yetkili panelin ilgili Discord alanında kalır. Bot tokenını configs/anticheat_config.lua, NUI, istemci Lua, açık depo veya kurulum ekran görüntüsüne koymayın. Yeni sunucuya özel AC dosyası da Discord bot tokenı için bir alan değildir.

AC panel anahtarı ve sunucu lisansı server.cfg içindeki set ayarlarına veya configs/anticheat_server.lua dosyasına aittir. Kısa ömürlü ekran görüntüsü/video tokenları yalnız izin verilen kanıt yüklemesi içindir; bot girişinde, webhook alanında veya paket indirmede kullanılmaz.

Açığa çıkan bot tokenını Discord uygulama ekranında, webhook adresini ilgili kanalın webhook ekranında, Tosun anahtarını kendi yetkili ekranında yenileyin. Eski değeri kullanan servisi kontrollü yeniden başlatın; yalnız dosyadan silmek uzaktaki kimlik bilgisini iptal etmez.

  1. Önce doğru Discord uygulaması, guild, rol ve kanalı doğrulayın; tam token yerine kimlik ve saat paylaşın.
  2. Kurulum kabulünde zararsız durum komutu ve test kanalına hassas bilgi içermeyen bildirim kullanın. Oyuncu banı veya ekonomi değişikliği yapmayın.
  3. Yanıt belirsizse para/ban/komut işlemini hemen tekrarlamayın; panelde gerçek sonucu ve işlem kaydını kontrol edin.

Discord botunu aynı paketten ayrı bir servis olarak kurun#

Discord botu Node.js üzerinde çalışır; FiveM resources içinde başlatılmaz. Arşivde discord-bot uygulaması, örnek ayarlar ve kurulum yönergeleri bulunur. Discord Developer Portal üzerinden kendi uygulamanızı ve botunuzu oluşturun; Application ID, Guild ID, kanal ve rol ID değerlerini kendi Discord sunucunuzdan alın. Bot tokenini yalnız özel ortam dosyasında saklayın.

Kiralık sitenin DB hesabı varsayılan olarak sağlayıcının localhost adresine bağlıdır. Botu ayrı FiveM makinesinde çalıştırmak bu bağlantıyı otomatik açmaz. Bot aynı site sunucusunda yönetilen bir servis olarak çalışmalı veya yalnız kendi site DB kullanıcınıza ait, sağlayıcı tarafından onaylanan özel bağlantı hazırlanmalıdır. Sağlayıcının root hesabını kullanmayın ve MySQL’i herkese açmayın. SQL’siz köprü, botun tüm eski doğrudan SQL komutlarını kendiliğinden desteklemez; oyun tablosu isteyen komutları ayrı doğrulayın.

Sitenizin sahibi olarak Site yönetimi → Discord bot ekranında bot tokeni, Client ID ve Guild ID alanlarını kaydedin. Özel bot kurulum dosyasını indir düğmesinden alınan dosyayı yalnız kendi bot klasörünüzde .env adıyla saklayın. Bu dosya ZIP içindeki boş örnekten farklıdır: yalnız seçilen sitenin anahtarlarını içerir. İndirilen .env dosyasını paylaşmayın ve kaynak kontrolüne eklemeyin.

  1. Node.js 22 veya üstü desteklenen LTS sürümünü kurun; discord-bot klasöründe kurulum betiğini çalıştırın ve örnek ayar dosyalarını hazırlayın.
  2. Botu bot ve applications.commands kapsamlarıyla kendi sunucunuza ekleyin. Herkese Administrator vermek yerine kullandığınız komut ve kanalların gerekli izinlerini seçin.
  3. Botun siteye ait veritabanı ve HTTPS API adresini ayarlayın. Komut imza anahtarı Tosun lisansı değildir; site ile bot arasında yalnız bu bot için özel olarak yapılandırılmalıdır. Ana SaaS anahtarını dağıtmayın.
  4. npm run doctor komutundaki bütün zorunlu kontroller başarılı olmadan servisi başlatmayın. doctor Discord’a giriş yapmaz ve komut göndermez; gerçek çevrimiçi durum ve rol denemesini ayrıca yapın.
cd discord-bot
sh setup.sh
# Configure the private .env and site bot settings first.
npm run doctor
npm start