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

https://kervanhosting.com/bilgi-bankasi/makale/discord-bot-invalid-token-ve-disallowed-intents-hatalari

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](https://kervanhosting.com/bilgi-bankasi/makale/bot-token-ve-gizli-bilgileri-guvende-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](https://discord.com/developers/applications)'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](https://kervanhosting.com/bilgi-bankasi/makale/botum-calismiyor-cevrimdisi-oluyor-veya-kapaniyor).
- **"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](https://kervanhosting.com/bot-hosting) ve yükleme adımları: [Node.js botu yükleme](https://kervanhosting.com/bilgi-bankasi/makale/node-js-discord-botunu-bot-hosting-paketine-nasil-yuklerim).

## 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**

- [Botum çalışmıyor, çevrimdışı oluyor veya sürekli kapanıyor](https://kervanhosting.com/bilgi-bankasi/makale/botum-calismiyor-cevrimdisi-oluyor-veya-kapaniyor)
- [Bot token'ı ve gizli bilgileri nasıl güvende tutarım?](https://kervanhosting.com/bilgi-bankasi/makale/bot-token-ve-gizli-bilgileri-guvende-tutma)
- [Node.js Discord botunu bot hosting paketine nasıl yüklerim?](https://kervanhosting.com/bilgi-bankasi/makale/node-js-discord-botunu-bot-hosting-paketine-nasil-yuklerim)

*Sorununuz çözülmediyse [destek talebi açın](https://kervanhosting.com/destek-taleplerim). Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.*
