Discord Gateway Intent'leri: Bir Botun Neleri Duyabileceği
Gateway intent'leri, bir botun bağlanırken hangi canlı olay gruplarını almak istediğini Discord'a bildirdiği seçeneklerdir. Bir bot bir intent istemediyse, o olayları hiç duymaz; bu da verileri gizli ve trafiği küçük tutar.
Gateway nedir
Bir bot Discord ile sürekli bir bağlantı tutar; buna gateway denir. Bu bağlantı üzerinden Discord, olaylar gerçekleştikçe bunları iter: bir mesaj gönderildi, bir üye katıldı, biri yazmaya başladı, bir ses kanalı değişti. Sınır olmasaydı, her bot her sunucudaki her olayı alırdı.
Intent'ler filtredir. Bir bot bağlandıktan sonra gönderdiği ilk mesajda istediği intent'leri tek bir sayı olarak bildirir. Discord da yalnızca eşleşen olayları gönderir.
Yaygın intent'ler
- Guilds: oluşturulan ya da değiştirilen sunucular, kanallar ve roller. Neredeyse her bot bunu kullanır.
- Guild messages: sunucu kanallarındaki mesajlar. Bu mesajların metnini okumak için ayrıcalıklı bir intent gerekir; aşağıya bakın.
- Guild voice states: ses kanallarına kimin girip çıktığı. Müzik ve ses araçları bunu ister.
- Guild moderation: yasaklamalar ve denetim kaydı girişleri.
- Guild message reactions: eklenen ya da kaldırılan tepkiler.
Üç intent özeldir: presence, server members ve message content. Bunlar ayrıcalıklı intent'lerdir, çünkü daha fazla kişisel veriye erişirler ve büyük botlar için ek onay gerektirirler.
Sunucu sahipleri için neden önemli
Bir bot çevrimiçiyken mesajlara, katılımlara ya da ses değişikliklerine tepki vermiyorsa, eksik bir intent sık görülen nedendir. Ayrıca bir bot, ayarlarda etkin olmayan ayrıcalıklı bir intent istediğinde 4014 hata koduyla bağlantısı kopabilir. Bot çevrimdışı gateway hataları 4004 ve 4014 makalesi bunu anlatır.
Intent'ler aynı zamanda bir gizlilik işaretidir. Yalnızca özelliklerinin ihtiyaç duyduğunu isteyen bir bota güvenmek daha kolaydır.
Intent'ler ve Noxyr
Ana Noxyr botu sizin için yönetilir. Kendi uygulamanızla bir özel bot kurarsanız, kurulum rehberinde anlatıldığı gibi Discord Developer Portal'da Server Members Intent ve Message Content Intent açık olmalıdır. Bunlar karşılama mesajları ve önek komutları gibi özellikler için gereklidir. Özel bot çevrimdışıysa bot çevrimdışı rehberi ile başlayın.
Daha fazla ayrıntı için ayrıcalıklı gateway intent'lerinin açıklaması makalesine bakın.
Yazmadığınız bir botu kontrol etmek
Yüklediğiniz bir bot tuhaf davranıyorsa, geliştiricisine hangi intent'leri kullandığını ve nedenini sorun. İyi botlar bunları dokümanlarında listeler. Kendi botunuz içinse Developer Portal'ı açın, Bot sayfasına gidin ve anahtarları kodunuzun istediği şeylerle karşılaştırın. Uyuşmazlık, düzeltilmesi gereken ilk şeydir.
Sık sorulan sorular
Bir bot intent istemezse ne olur?
Discord ona eşleşen olayları göndermez. Bot çevrimiçi kalır ama bu olaylara tepki veremez.
Kendi botum için intent'leri nerede açarım?
Discord Developer Portal'da uygulamanızı açın, Bot sayfasına gidin ve ihtiyaç duyduğunuz ayrıcalıklı intent'leri açın.
Tüm intent'ler ayrıcalıklı mı?
Hayır. Yalnızca presence, server members ve message content ayrıcalıklıdır. Diğerleri serbestçe kullanılabilir.