Discord botu "Invalid Token" ve "Used disallowed intents" hataları

Bot ve Uygulama Hosting 56 görüntülenme Markdown

Botunuzu başlattığınızda konsolda iki hata ailesi sık görülür ve ikisi de bot kodundan değil Discord ayarlarındandır: token hataları ve intent (yetki) hataları. Botunuz hosting paketinde, sunucuda ya da bilgisayarınızda çalışsa da çözüm aynıdır.

1. "Invalid token" / "TokenInvalid" / "An invalid token was provided"

Bot, Discord'a giriş için token kullanır. Hata, gönderdiğiniz token'ın geçersiz olduğu anlamına gelir. Nedenleri:

  • Token yanlış kopyalanmış: Başında/sonunda boşluk, eksik karakter ya da tırnak içinde fazladan bir karakter.
  • Token sıfırlanmış: Developer Portal'da "Reset Token" dediyseniz eski token artık geçersizdir. Ya da token bir yerde sızdığı için Discord otomatik sıfırlamış olabilir (bir GitHub deposuna yüklenen token'lar Discord tarafından taranır).
  • Yanlış değer kullanıyorsunuz: Uygulama kimliği (Application ID), istemci gizli anahtarı (Client Secret) ya da bot ID'si token değildir. Doğru yer: Developer Portal > uygulamanız > Bot sekmesi > Reset Token.
  • Ortam değişkeni yüklenmemiş: .env dosyası okunmuyor, token undefined geliyor. Kodda token'ı yazdırmayın; onun yerine if (!process.env.TOKEN) console.log("TOKEN yok") gibi bir kontrol koyun. Panelde .env dosyasının doğru klasörde ve doğru adda (.env) olduğundan emin olun.

Çözüm: Developer Portal'dan yeni token alın, .env dosyasına yazın, botu yeniden başlatın. Token güvenliği: token'ı güvende tutma.

2. "Used disallowed intents" / "Privileged intent provided is not enabled"

Discord botlara hangi olayları ve verileri alabileceklerini intent ile belirtir. Üç tanesi "ayrıcalıklı"dır ve hem kodda talep edilmeli hem de Developer Portal'da elle açılmalıdır:

  • Presence Intent (kullanıcıların çevrimiçi durumu)
  • Server Members Intent (üye listesi, üye katılma/ayrılma olayları)
  • Message Content Intent (mesajların içeriği; ön ek komutlarıyla çalışan botlar için gerekir)

Hata, kodda bu intent'lerden birini istediğiniz halde portalda açmadığınız anlamına gelir. Çözüm:

  1. Discord Developer Portal'a girin, botunuzun uygulamasını açın.
  2. Soldan Bot sekmesine gidin.
  3. Aşağıda Privileged Gateway Intents bölümünde kodunuzun istediği intent'lerin anahtarını açın ve kaydedin.
  4. Botu yeniden başlatın.

Kodda yalnızca gerçekten ihtiyacınız olan intent'leri isteyin. discord.js'de new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent] }) gibi. Çok sunuculu (genellikle 100'den fazla sunucuda) botlar için Discord ayrıcalıklı intent'ler için doğrulama ve onay ister.

Diğer sık hatalar

  • Bot sunucuda çevrimdışı ama hata yok: Konsolda "ready" mesajını görüyor musunuz? Görmüyorsanız bot hiç girmemiştir: botum çalışmıyor.
  • "Missing Permissions" / "Missing Access": Botun sunucuda ilgili kanalı görme ve yazma izni yok. Sunucu ayarlarından bot rolüne izin verin.
  • Komutlara cevap vermiyor: Message Content intent'i kapalı olabilir (ön ek komutları için) ya da slash komutları kaydedilmemiş olabilir.

Botunuzu 7/24 çalıştırmak için: Bot ve Uygulama Hosting ve yükleme adımları: Node.js botu yükleme.

Sık sorulanlar

Token'ı GitHub'a yükledim, ne yapmalıyım?

Hemen Developer Portal'da Reset Token yapın; eski token'ı yayından silmek yetmez, git geçmişinde kalır. Yeni token'ı yalnızca ortam değişkeninde tutun ve .gitignore dosyasına .env ekleyin.

Intent'i açtım ama hâlâ hata veriyor.

Değişikliği kaydettiniz mi? Doğru uygulamada mısınız? Botu tamamen durdurup yeniden başlattığınızdan emin olun; bazen birkaç dakika sürebilir.

Python (discord.py) için de aynı mı?

Evet; intent'ler Discord'un genel yapısıdır. discord.py'de intents = discord.Intents.default(); intents.message_content = True ile talep edilir.

İlgili makaleler

Sorununuz çözülmediyse destek talebi açın. Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.