İçeriğe geç
N'oluyo
Kaynaklar

Sık sorulan sorular

Son güncelleme:
Bu sayfada

Takıldığın yeri burada bulabilirsin. Her hatanın kısa anlamı için Hatalar sayfasına da bakabilirsin.

Başlarken

403 developer_terms_required alıyorum

Portaldan geliştirici sözleşmesini kabul et, sonra aynı hesapla yeniden dene.

403 email_not_verified veya 403 guest_not_allowed alıyorum

Uygulama açmak için e-posta adresin doğrulanmış olmalı: gelen kutundaki bağlantıya tıkla. Misafir hesapla uygulama açılamaz; önce ayarlardan hesabına e-posta ve şifre bağla.

Ekleme sayfasında sunucum listede yok

Liste yalnızca ManageGuild iznin olan, yani yönettiğin sunucuları gösterir. Sunucu sahibinden sana bu izni vermesini ya da botu kendisinin eklemesini iste.

403 bot_private alıyorum

Bu botu yalnızca sahibi ekleyebilir. Bot seninse bu hesapla giriş yap; başkası da ekleyebilsin istiyorsan portalda uygulamanın Herkese açık seçeneğini aç.

Botu eklerken 400 bot_guild_limit alıyorum

Doğrulanmamış bir bot en çok 100 sunucuda olabilir. Sınırı kaldırmak için Doğrulama başvurusu yapabilirsin.

Token ve kimlik

Her istekte 401 unauthorized alıyorum

Token eksik, yanlış veya artık geçersiz. Sırayla bak:

  1. Başlık tam olarak Authorization: Bot <token> mi? Bot sözcüğü ve ardından tek boşluk gerekli.

  2. Token'ı yeniledikten sonra eski değeri mi kullanıyorsun? Yenileme eskisini anında geçersiz kılar.

  3. Uygulama silinmiş ya da botun veya sahibinin hesabı kapatılmış olabilir.

Hâlâ çözülmediyse portalda token'ı yenile. 401 aldığın isteği tekrar etme; botu durdurup bak.

Token'ımı kaybettim

Kayıtlı token bir daha gösterilmez. Portalda uygulama sayfasındaki Token'ı yenile ile yenisini al ve programına koy.

403 bot_forbidden alıyorum

Çağırdığın rota botlara kapalı. Bu çoğunlukla kişi hesabına özel bir şeydir: özel mesaj açmak, davet kullanmak, profil değiştirmek ya da portal rotaları. Botların kullanabildiği her şey REST referansında.

İzinler

Her şey doğru görünüyor ama 403 missing_permissions alıyorum

Botun bu işlem için gereken izni yok. Rotaya gereken izin REST referansında her rotanın altında yazar. Şunlara bak:

  1. Botun rolünde bu izin var mı? Sunucu ayarlarındaki Roller listesinde botun adını taşıyan rolü aç. İzin yoksa ekle; bot bunu kendisi ekleyemez.

  2. Kanal ayarları izni kaldırıyor mu? Sunucuda izni olsa bile kanalın izin ayarı onu alabilir.

  3. Bot zaman aşımında mı? Zaman aşımındaki bir üye yalnızca ViewChannel ve ReadMessageHistory izinlerini korur.

  4. Sahip olmadığı bir izni mi veriyor? Bot sahip olmadığı bir izni bir role veya kanal ayarına veremez; bu da missing_permissions döner. Çözüm, önce botun rolüne o izni vermek.

Rol yeterince yüksek değil: 403 role_hierarchy

Bot, işlem yaptığı üyenin en yüksek rolünden veya düzenlediği rolden daha yüksek bir role sahip olmalı. Eşit olmak yetmez. Yeni botun rolü @everyone'ın hemen üstünde başlar, bu yüzden başta yalnızca rolü olmayan üyeler üzerinde işlem yapabilir.

Çözüm: Bir sunucu yöneticisi, Sunucu ayarları içindeki Roller listesinde botun rolünü işlem yapacağı rollerin üstüne sürüklesin. Sunucu sahibi üzerinde hiçbir bot işlem yapamaz.

403 missing_access alıyorum

Botun bu kanalı görme izni (ViewChannel) yok. Sunucuda veya kanal ayarlarında bu izni ver.

Mesaj listesi hep boş geliyor, hata da yok

Botun Mesaj geçmişini oku (ReadMessageHistory) izni yok. Liste rotaları bu durumda hata vermez, boş liste döndürür. Rolüne bu izni ekle.

Botun rolünü silemiyorum veya başkasına veremiyorum: 400 managed_role

Botun rolü ona aittir. Silinemez, başkasına verilemez, bottan alınamaz. Adını, rengini, izinlerini ve sırasını ise normal kurallarla değiştirebilirsin. Bot sunucudan çıkınca rol de silinir.

Hız sınırları

429 rate_limited alıyorum

Sınırı aştın. Yanıttaki retry_after kadar saniye bekleyip yeniden dene:

JavaScript
if (res.status === 429) {
  const { retry_after } = await res.json();
  await new Promise((done) => setTimeout(done, retry_after * 1000));
  // sonra isteği yeniden gönder
}

Sürekli alıyorsan isteklerini azalt. Sınırlar Hız sınırları sayfasında.

429 slowmode alıyorum

Kanalda yavaş mod açık. retry_after kadar bekle. Bota ManageMessages veya ManageChannels izni verilirse yavaş moddan etkilenmez.

429 upload_quota alıyorum

Kısa sürede çok dosya yükledin: saatte 1 GiB, günde 3 GiB sınırı var. retry_after kadar bekle.

403 temporarily_banned alıyorum

Bu IP adresinden çok fazla reddedilmiş bot isteği geldi. retry_after kadar bekle ve programını düzelt: 401'de dur, 403'ü tekrar etme, 429'da bekle. Ayrıntılar Hız sınırları sayfasında.

Mesajlar

Botum !ping yazılınca bir şey yapmıyor

Sırayla şunlara bak:

  1. Program çalışıyor mu ve terminalde READY görünüyor mu? Görünmüyorsa bağlantının kapanış koduna bak, tablosu Gateway sayfasında.

  2. Identify'daki intents değerinde GUILD_MESSAGES var mı? Yoksa mesaj olayları hiç gelmez.

  3. MESSAGE_CONTENT var mı? Yoksa content boş gelir ve !ping eşleşmez. Aşağıdaki soruya bak.

  4. Bot o kanalı görebiliyor mu? Kanalları görüntüle izni olmayan kanalların olayları gelmez.

  5. Yanıt göndermek için Mesaj gönder ve Mesaj geçmişini oku izni var mı?

Çalışan bir örnek Örnekler sayfasında.

Mesajların content alanı boş geliyor

Bot, MESSAGE_CONTENT intent'i olmadan yalnızca kendi mesajlarının ve kendisini etiketleyen mesajların metnini görür. Portalda Mesaj içeriği'ni aç ve identify'da bu intent'i de iste. Portalda yeni açtıysan programı yeniden başlat: açık oturum, identify ettiği intent'lerle sürer. Kural Intent'ler sayfasında.

Bağlantı 4014 ile kapanıyor

Identify'da portalda açmadığın ayrıcalıklı bir intent istiyorsun: GUILD_MEMBERS, GUILD_PRESENCES ya da MESSAGE_CONTENT. Portaldan aç ya da intents değerinden çıkar. op 8 de oturumda olmayan bir intent gerektirirse aynı kod gelir.

Bağlantı 4011 ile kapanıyor

Botun için aynı shard'la daha yeni bir oturum açıldı. Çoğunlukla programın iki kopyası çalışıyordur: biri eski bir terminalde ya da başka bir sunucuda kalmış olabilir. Birini durdur. Yeniden bağlanma döngüsüne girme, iki kopya birbirini düşürmeye devam eder. Daha küçük bir shard sayısıyla bağlanmak da aynı kodu verir, bkz. Shard'lar.

400 invalid_body alıyorum

İstek gövdesi tek bir geçerli JSON nesnesi değil ya da bir alanın türü yanlış. En sık nedeni ID'yi veya izin değerini metin yerine sayı olarak göndermektir: "111600000000000000" doğru, tırnaksız yazmak yanlış. Gövde isteyen bir rotaya boş gövde göndermek de bu hatayı verir; değişiklik yoksa {} gönder.

400 validation_failed alıyorum

Bir alan kurala uymuyor. Yanıttaki errors, hangi alanın neden reddedildiğini söyler: {"content":"required"}. Örneğin dosya, anket, iletme veya çıkartma yoksa content zorunludur ve en çok 2000 karakterdir.

400 automod_blocked alıyorum

Sunucunun otomatik moderasyonu mesajı engelledi. Yanıttaki message, sunucunun kendi metni olabilir. Kural göndereni zaman aşımına da alabilir. Sunucu sahibi ve ManageGuild izni olanlar bundan muaftır.

403 not_author alıyorum

Bir bot yalnızca kendi mesajlarını düzenleyebilir. Başkasının mesajını düzenleyemez ama ManageMessages izniyle silebilir.

404 unknown_guild veya 404 unknown_channel alıyorum

Bot o sunucunun üyesi değil, kanal yok ya da ID yanlış. Botun gördüğü sunucuları GET /users/@me/guilds, kanalları GET /guilds/{guild_id}/channels ile listele.

Yanıtım 201 değil 200 geldi

Doğru: mesaj göndermek 200 döner. Her rotanın başarılı yanıtı REST referansında yazar.

Botum kişiye neden ilk yazamıyor?

Çünkü N'oluyo'da bot kimseye kendiliğinden yazamaz: istenmeyen mesajı baştan önlemek için DM'yi yalnızca kişi açar. Kişi botunun profilinden ya da üye listesinden "Mesaj gönder" dediğinde DM açılır; kişi yazdıktan, komut çalıştırdıktan ya da butona bastıktan sonra 24 saat serbestçe yazabilirsin. Bu süre dışında 403 dm_window_closed, kişi DM'yi kapattıysa ya da botu engellediyse 403 dm_closed alırsın. Ayrıntılar Özel mesajlar sayfasında.

Embed'ler ve butonlar

Butona basınca "Bot yanıt vermedi." görünüyor

Bota basma ulaştı ama 3 saniye içinde geçerli bir yanıt gelmedi. Sırayla bak:

  1. Bot çalışıyor ve gateway'e bağlı mı? Çevrimdışı bota basma sonradan gönderilmez.

  2. INTERACTION_CREATE gelince ilk iş yanıt mı? Rol vermek ya da başka bir servise sormak gibi işleri yanıttan sonra yap; iş uzunsa önce type: 5 ya da type: 6 gönder.

  3. callback isteği hata döndürüyor mu? Programının log'una bak: validation_failed gibi bir hata yanıtı geçersiz kılar. Reddedilen yanıt hakkını harcamaz, süre içinde düzeltip yeniden gönderebilirsin.

Ayrıntılar Etkileşimler sayfasında.

400 interaction_timeout alıyorum

İlk yanıt 3 saniyeden sonra geldi. O etkileşime artık yanıt verilemez. Kodunda yanıttan önce çalışan uzun işi yanıtın arkasına taşı.

Kişiler "Bu bileşen artık geçerli değil." görüyor

Bot mesajı düzenleyip butonu kaldırmış ya da custom_id'sini değiştirmiş; ekranı henüz güncellenmemiş biri eski butona basıyor. Basma bota ulaşmaz. Bu doğru davranıştır.

Embed'deki görsel invalid diye reddediliyor

Embed görseli yalnızca aynı istekle yüklenen bir dosya olabilir: attachment://dosya.png yaz ve dosyayı multipart/form-data ile files[0] olarak gönder. Başka bir siteden adres kabul edilmez. Ayrıntılar Embed'ler sayfasında.

Yalnızca basan kişinin gördüğü mesajlar

Ephemeral mesajım sayfa yenilenince kayboluyor

Doğru: N'oluyo bu mesajı saklamaz, yenilemede ve uygulama yeniden açılınca gider. Kalıcı olması gereken bir sonucu kişinin bulabileceği başka bir yere de yaz. Ayrıntısı Etkileşimler sayfasında.

400 ephemeral_files alıyorum

Ephemeral mesaj dosya taşıyamaz: attachment:// ve multipart/form-data ikisi de reddedilir. Görseli herkese açık bir mesajla gönder.

Ephemeral mesajı düzenledim, metni boşaldı

Ephemeral mesajda birleştirilecek bir satır yoktur, göndermediğin alan boş sayılır. PATCH ve type: 7 içinde mesajın tamamını gönder.

Ses

Bot ses kanalındaki konuşmaları duyabilir mi?

Hayır. Botların aldığı medya token'ında canSubscribe: false yazılıdır ve medya sunucusu botun hiçbir ses, görüntü ya da veri izine abone olmasına izin vermez; kodunda abone olmayı denesen bile tek bir ses karesi gelmez. Bot seste yalnızca ses yayınlar. Odadayken yalnızca kimin bağlı olduğunu, susturma durumunu ve kimin o an konuştuğunu (ses içeriği olmadan) görür. Ayrıntılar Ses sayfasında.

Bu sayfayı yapay zekaya verirsen

Sırada ne var

  • Sık hatalar: belirtiye göre sebep ve çözüm tablosu

  • Hatalar: tüm REST ve etkileşim hata kodlarının tam listesi

  • Sözlük: teknik terimlerin iki cümlelik sade açıklamaları