Bir Discord botu yazdığınızda yalnızca API'yi değil, iki belgeyi de kabul etmiş olursunuz: Discord Developer Terms of Service (geliştirici hizmet şartları) ve Discord Developer Policy (geliştirici politikası). Privileged intent başvurusu, App Directory'de listelenme ve monetization gibi her önemli adımda Discord bu belgelere uygunluğu kontrol ediyor. Buna rağmen "botum neden reddedildi" sorusunun cevabı çoğu zaman bu metinlerde gizli kalıyor.

Bu yazı, Discord'un geliştirici belgelerinde bu iki politikaya atıf yapılan yerlerden yola çıkarak bot geliştiricilerinin pratikte uyması gereken kuralları Türkçe özetliyor. Politika metinlerinin tamamı Discord'un geliştirici destek sitesinde yayımlanıyor ve değişebiliyor; aşağıdaki maddeler o metinlerin yerini tutmaz.

Hangi belgeler sizi bağlıyor?

Hangi belgeler sizi bağlıyor? Developer Terms of Service, Developer Policy, Monetization Terms, App Directory App Content Requirements
BelgeNe zaman karşınıza çıkar
Developer Terms of ServiceAPI'yi kullanan her geliştirici için; self-bot yasağı gibi temel kurallar
Developer PolicyVeri kullanımı, izinler, privileged intent kullanımı, monetization şartları
Monetization TermsÜcretli SKU satmak istediğinizde kabul edilir
App Directory App Content RequirementsUygulamanızı Discovery ile listelemek istediğinizde
Message Content intent inceleme politikasıMessage Content intent'i için başvururken

Discovery tarafında belgeler, "Enable Discovery" düğmesine basmadan önce ürün sayfanızın dizin uygunluk kriterlerine, uygulama içerik gereksinimlerine, Developer Terms of Service'e ve Developer Policy'ye uyması gerektiğini söylüyor.

1. Self-bot yok: kullanıcı hesabını otomatikleştirmeyin

OAuth2 belgesindeki uyarı açık: geliştiriciler hizmet şartlarına uymalı ve bu, standart kullanıcı hesaplarını OAuth2/bot API dışında otomatikleştirmekten kaçınmayı içerir. Belgenin kendi ifadesiyle bu hesaplara "generally called "self-bots"" deniyor. Yani kendi kullanıcı token'ınızla giriş yapan, sizin adınıza mesaj atan veya sunucularda gezen bir betik yazmak bu kurala aykırı.

Kütüphaneler de bu nedenle kullanıcı hesabı desteğini kaldırdı. discord.py 2.0 geçiş notları, kullanıcı token'ıyla giriş yapmanın Discord hizmet şartlarına aykırı olduğunu belirterek kullanıcıya özel uç noktaların tamamen kaldırıldığını söylüyor; nextcord ve Pycord da userbot desteğini kaldırdı. Discord.Net SSS sayfası ise kullanıcı hesabıyla giriş yapmanın hesabın kapatılmasıyla sonuçlanabileceği uyarısını yapıyor. Doğru yol her zaman Developer Portal'da bir uygulama ve bot kullanıcısı oluşturmaktır; Discord bot nasıl yapılır yazımız bu adımları anlatıyor.

2. Yalnızca ihtiyacınız olan veriye erişin

Privileged intent rehberi, geliştiricilerin yalnızca uygulamanın işlevi için gerekli veriye erişebileceğini hatırlatıyor ve intent kullanımınızın Developer Policy ile Developer Terms of Service'e uygun olup olmadığını gözden geçirmenizi istiyor. Gateway belgesi de bir privileged intent'i ancak kullanım senaryonuz onu gerektiriyorsa ve Developer Policy ile tutarlıysa açabileceğinizi söylüyor.

Pratikte bunun anlamı şu:

  • Prefix komutları için Message Content açmak yerine slash komutlarına geçin. Ayrıntılar intent yazımızda ve slash komut rehberimizde.
  • Tüm üye listesini önbelleğe almak yerine ihtiyaç anında tek üye sorgulayın.
  • Veriyi saklıyorsanız neden sakladığınızı, ne kadar süre tuttuğunuzu ve nasıl koruduğunuzu yazılı olarak açıklayabilin. Privileged intent başvurusunda tam olarak bu sorular soruluyor.
  • Bellekte işleyip attığınız veriyi kalıcı depoya yazmayın.

10.000 kullanıcı eşiği, yıllık yeniden başvuru ve başvuru formunda nelerin beklendiğini bot doğrulama ve privileged intent yazımızda ayrıntılı anlattık.

3. Gizlilik politikası ve kullanım şartları yayımlayın

3. Gizlilik politikası ve kullanım şartları yayımlayın: Botunuz hangi Discord verilerini (kullanıcı ID'si, mesaj içeriği, sunucu..., Bu veriler ne için kullanılıyor ve nerede...

Application nesnesinde terms_of_service_url ve privacy_policy_url alanları bulunur; bu bağlantıları Developer Portal'daki genel bilgiler sayfasından eklersiniz. Monetization uygunluk listesinde ikisi de zorunlu. Belgeye göre kullanım şartları sizinle kullanıcılarınız arasındaki sözleşmedir; gizlilik politikası ise topladığınız kullanıcı verisini ve bu veriyi Discord ve üçüncü taraflarla nasıl kullanıp paylaştığınızı, Developer Terms of Service ve Developer Policy ile tutarlı şekilde, açık ve doğru biçimde anlatmalıdır.

Pycord topluluk rehberi de gizlilik politikasının Discord tarafından zorunlu tutulduğunu, kullanım şartlarının ise isteğe bağlı ama iyi bir uygulama olduğunu belirtiyor. Gizlilik politikanızda en azından şunları yanıtlayın:

  • Botunuz hangi Discord verilerini (kullanıcı ID'si, mesaj içeriği, sunucu ayarları vb.) topluyor?
  • Bu veriler ne için kullanılıyor ve nerede saklanıyor?
  • Ne kadar süre tutuluyor ve kullanıcı silinmesini nasıl talep edebilir?
  • Veriler üçüncü taraf bir hizmetle (yapay zekâ API'si, analiz aracı vb.) paylaşılıyor mu?

4. Gereğinden fazla izin istemeyin

OAuth2 ve izinler belgesi, uygulamanızın yalnızca ihtiyaç duyduğu izinleri istemesi gerektiğini ve bunun Developer Policy'de de tarif edildiğini söylüyor; aşırı izin istemek kullanıcı güvenini azaltır. Davet bağlantınıza alışkanlıkla Administrator eklemek bu yüzden kötü bir fikir. İzin hesabını bot izinleri ve rol hiyerarşisi yazımızda, davet bağlantısı oluşturmayı da bot ekleme yazımızda anlattık.

5. Spam ve kötüye kullanımdan uzak durun

Rate limit belgesine göre API sınırları spam, kötüye kullanım ve aşırı yükü önlemek için var. Sınırları zorlayan bir bot yalnızca hata almakla kalmaz: çok sayıda geçersiz istek (401, 403 veya 429 dönen) yapan IP adresleri Discord API'ye erişimden geçici olarak engellenir. Belgedeki güncel sınır 10 dakikada 10.000 geçersiz istek. Toplu DM gönderen, aynı mesajı onlarca kanala basan veya kullanıcıların izni olmadan onları etiketleyen botlar hem bu sınırlara hem de kullanıcı şikâyetlerine takılır.

  • Rate limit başlıklarına uyun; kütüphanenizin kuyruğunu atlatmaya çalışmayın. Ayrıntılar 429 hatası yazımızda.
  • Kullanıcı girdisini mesaj içinde tekrarlıyorsanız allowed_mentions ile @everyone ve rol etiketlerini engelleyin. Belgeler, kullanıcı verisiyle yanıt veren uygulamalara bunu öneriyor.
  • Token'ınızı geçersiz kalınca kullanmaya devam etmeyin; 401 dönen istekler de geçersiz istek sayılır.

6. İçerik ve isimlendirme

Monetization uygunluk listesi, uygulama adının, açıklamasının, komutlarının ve role connection metadata'sının zararlı veya kötü dil içermemesini şart koşuyor. App Directory'de listelenecekseniz ayrıca App Content Requirements politikasına uymalısınız. Müzik botu geliştiriyorsanız, telifli içerik ve üçüncü taraf platformların kuralları açısından Developer Policy'yi ve kullandığınız kaynak platformun şartlarını ayrıca okumanızı öneririz; teknik kurulum için Lavalink müzik botu yazımıza bakabilirsiniz.

7. Token ve hesap güvenliği

Bot token'ı botunuzun kimliğidir. Ele geçirilirse biri botunuzla spam atabilir veya sunuculara zarar verebilir; bu da sizin uygulamanızın kural ihlali olarak görünür. Token'ı kodun içine değil ortam değişkenine koyun, sızdığında Developer Portal'daki "Bot" sayfasından "Reset Token" ile yenileyin. Ayrıntılar için bot token güvenliği yazımıza ve .env dosyası rehberimize bakın. Monetization için takım üyelerinde 2FA ve doğrulanmış e-posta da zorunlu.

Yayına almadan önce uygunluk kontrol listesi

Yayına almadan önce uygunluk kontrol listesi: Bot, Developer Portal'da oluşturulmuş bir uygulamanın bot kullanıcısı..., Açık privileged intent'lerin her biri bir özelliğe karşılık...
KontrolNeden
Bot, Developer Portal'da oluşturulmuş bir uygulamanın bot kullanıcısı mı?Self-bot yasağı
Açık privileged intent'lerin her biri bir özelliğe karşılık geliyor mu?Veri minimizasyonu, intent incelemesi
Gizlilik politikası ve kullanım şartları bağlantısı portalda var mı?Doğrulama ve monetization şartları
Davet bağlantısı yalnızca gereken izinleri istiyor mu?Developer Policy, kullanıcı güveni
Saklanan veri için saklama süresi ve silme yolu belli mi?Intent başvurusu, gizlilik politikası
Rate limit ve geçersiz istek takibi yapılıyor mu?Spam ve kötüye kullanım önlemi
Token ortam değişkeninde ve .gitignore içinde mi?Hesap güvenliği

Kurallara uymazsanız ne olur?

Belgelerde açıkça yazan sonuçlar şunlar: politikaya uymayan veya gerekçesiz privileged intent başvuruları reddedilebilir, inceleme penceresini kaçıran uygulamaların intent erişimi kaldırılır, rate limit'leri zorlayan IP'ler geçici olarak engellenir. Kullanıcı hesabıyla otomasyon için ise kütüphane belgeleri hesabın kapatılabileceği uyarısını yapıyor. Daha ağır yaptırımların kapsamı politika metinlerinde düzenlendiği için ayrıntıyı oradan okuyun.

Sık Sorulan Sorular

Gizlilik politikası için avukata ihtiyacım var mı?

Pycord topluluk rehberi, botunuzun Discord kullanıcı verisini nasıl kullandığını düzgünce yazmanın yeterli olduğunu ve resmî bir onay gerekmediğini söylüyor. Ancak bu bir topluluk görüşü; ticari bir ürün veya kişisel veri işleyen bir hizmet sunuyorsanız yerel mevzuat açısından profesyonel destek almak mantıklı olabilir.

Kendi hesabım için küçük bir otomasyon betiği yazmak da yasak mı?

Belgelerdeki kural, standart kullanıcı hesaplarının OAuth2/bot API dışında otomatikleştirilmemesi yönünde ve bir istisna tanımlamıyor. Otomasyon gerekiyorsa bir bot uygulaması oluşturun.

Developer Policy değişirse nasıl haberdar olurum?

Politika metinleri Discord'un geliştirici destek sitesinde yayımlanıyor. Teknik değişiklikler için docs.discord.com'daki Change Log sayfasını takip etmek, intent kuralları gibi politikaya bağlı değişiklikleri de yakalamanızı sağlar.

Botum için kullanım şartları zorunlu mu?

Monetization ve doğrulama için portalda kullanım şartları bağlantısı isteniyor. Bunlara ihtiyacınız yoksa bile kullanıcıların ne yapıp ne yapamayacağını belirten kısa bir metin anlaşmazlıkları kolaylaştırır.

Marka adları sahiplerine aittir. Bu yazı bağımsız bir teknik rehberdir; adı geçen kuruluşlarla bayilik veya ortaklık ilişkisi bulunduğu anlamına gelmez.

İlgili içerikler: Bot doğrulama ve privileged intent · Intent nedir · Bot izinleri · Token güvenliği · 429 rate limit hatası · Premium abonelik · VPS güvenlik sertleştirme