Sık sorulan sorular
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:
- Başlık tam olarak
Authorization: Bot <token>mi?Botsözcüğü ve ardından tek boşluk gerekli. - Token'ı yeniledikten sonra eski değeri mi kullanıyorsun? Yenileme eskisini anında geçersiz kılar.
- 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:
- 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.
- Kanal ayarları izni kaldırıyor mu? Sunucuda izni olsa bile kanalın izin ayarı onu alabilir.
- Bot zaman aşımında mı? Zaman aşımındaki bir üye yalnızca
ViewChannelveReadMessageHistoryizinlerini korur. - Sahip olmadığı bir izni mi veriyor? Bot sahip olmadığı bir izni bir role veya kanal ayarına veremez; bu da
missing_permissionsdö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:
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:
- Program çalışıyor mu ve terminalde
READYgörünüyor mu? Görünmüyorsa bağlantının kapanış koduna bak, tablosu Gateway sayfasında. - Identify'daki
intentsdeğerindeGUILD_MESSAGESvar mı? Yoksa mesaj olayları hiç gelmez. MESSAGE_CONTENTvar mı? Yoksacontentboş gelir ve!pingeşleşmez. Aşağıdaki soruya bak.- Bot o kanalı görebiliyor mu? Kanalları görüntüle izni olmayan kanalların olayları gelmez.
- 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:
- Bot çalışıyor ve gateway'e bağlı mı? Çevrimdışı bota basma sonradan gönderilmez.
INTERACTION_CREATEgelince ilk iş yanıt mı? Rol vermek ya da başka bir servise sormak gibi işleri yanıttan sonra yap; iş uzunsa öncetype: 5ya datype: 6gönder.callbackisteği hata döndürüyor mu? Programının log'una bak:validation_failedgibi 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ı