N'oluyo · Geliştirici Dokümanları · Son güncelleme: · https://noluyo.net/gelistirici

Hatalar

Başarısız her istek aynı biçimde bir JSON gövdesi döndürür:

Hatalar

Başarısız her istek aynı biçimde bir JSON gövdesi döndürür:

{
  "code": "validation_failed",
  "message": "One or more fields are invalid.",
  "errors": { "content": "required" }
}
AlanAnlamı
codeDeğişmeyen, makinece okunur kod. Kararını buna göre ver.
messageGeliştiriciler için açıklama. Değişebilir, kullanıcıya olduğu gibi gösterme.
errorsYalnızca validation_failed ile: alan başına bir hata kodu.
retry_afterYalnızca hız sınırı ve geçici engel hatalarında: beklenecek saniye.

message metinleri İngilizcedir. Tek istisna maintenance'tır: Accept-Language başlığı İngilizceyi öne çıkarıyorsa İngilizce, aksi halde Türkçe gelir.

Alan hata kodları

validation_failed ile gelen errors içinde görülür:

KodAnlamı
requiredAlan zorunlu ve boş
invalidDeğer geçersiz
too_shortÇok kısa
too_longÇok uzun
takenBu değer alınmış, örneğin kullanıcı adı

Listeler ve sorgu parametreleri için de aynı biçim kullanılır: limit aralık dışındaysa {"limit":"invalid"} döner.

Kimlik ve erişim

HTTPKodAnlamıNe yapmalı
401unauthorizedToken eksik, yanlış veya artık geçersiz.Tekrar deneme. Token'ı ve Bot önekini kontrol et; gerekirse portaldan yenile.
403bot_forbiddenBu rota botlara kapalı.Rotayı kullanma. Bota açık rotalar REST referansında.
403temporarily_bannedBu IP adresinden çok fazla reddedilmiş bot isteği geldi.retry_after kadar bekle, reddedilen istekleri tekrarlamayı bırak. Bkz. Hız sınırları.
403missing_accessKanalı görme izni yok.Bota ViewChannel verilmeli.
403missing_permissionsGereken izin yok ya da bot susturulmuş.Rotanın izinleri REST referansında yazar.
403role_hierarchyHedef veya rol, botun rütbesinden aşağıda değil.Botun rolü yukarı taşınmalı. Bkz. İzinler.

Bulunamayanlar

Üyesi olmadığın bir sunucu unknown_guild, görmediğin bir sunucunun kanalı unknown_channel döner; böylece var olup olmadıkları açığa çıkmaz.

HTTPKodAnlamı
404not_foundBöyle bir rota yok. Yöntem yanlışsa da bu döner.
404unknown_guildSunucu yok ya da üyesi değilsin.
404unknown_channelKanal yok ya da erişimin yok.
404unknown_roleRol yok.
404unknown_memberKişi bu sunucunun üyesi değil.
404unknown_userKullanıcı yok.
404unknown_messageMesaj bu kanalda yok.
404unknown_banBu kullanıcı yasaklı değil.
404unknown_applicationUygulama yok ya da senin değil.
404unknown_commandKomut yok ya da bu kapsamda değil: sunucu komutu global rotadan, global komut sunucu rotasından bulunmaz.

İstek hataları

HTTPKodAnlamı
400invalid_bodyGövde tek bir geçerli JSON nesnesi değil, bir alanın türü yanlış (örneğin metin yerine sayı olarak ID) ya da multipart parçası tanınmıyor.
400validation_failedBir veya daha fazla alan geçersiz; ayrıntı errors içinde.
413body_too_largeGövde çok büyük.
413file_too_largeDosya yükleme sınırını aşıyor.
400invalid_channel_typeİşlem bu kanal türünde yapılamaz, örneğin ses kanalına mesaj.
400unknown_emojiEmoji geçersiz, bulunamadı veya bot kullanamıyor.
400invalid_imageGörsel PNG, JPEG, WebP veya GIF değil.
413image_too_largeGörsel boyut sınırını aşıyor.

Mesajlar, roller ve moderasyon

HTTPKodAnlamı
403not_authorYalnızca kendi mesajını düzenleyebilirsin.
403system_messageSistem mesajı üzerinde bu işlem yapılamaz.
400ephemeral_forbiddenKanala giden mesajda flags: 64 (ephemeral) gönderildi; kanal mesajının gösterileceği tek bir kişi yoktur. flags alanını çıkar.
400fanout_too_largeMesajın embed ve bileşenleri, sunucunun üye sayısıyla çarpılınca yayılma bütçesinin 30 saniyesinden fazla tutuyor. max_bytes o kanalın alabileceği en büyük boyuttur; embed'leri küçült.
400automod_blockedSunucunun otomatik moderasyonu mesajı engelledi. message, sunucunun yazdığı metin olabilir. Kural ayrıca göndereni susturabilir. Sunucu sahibi ve ManageGuild izni olanlar muaftır.
400messages_too_oldToplu silmede 14 günden eski mesaj var.
400max_pinsKanal sabitleme sınırında.
400too_many_reactionsMesaj farklı emoji sınırında.
400everyone_role@everyone silinemez, verilemez, adı veya sırası değiştirilemez.
400managed_roleYönetilen rol silinemez, verilemez, alınamaz, otomatik atanamaz.
400max_rolesSunucu rol sınırında.
400max_channelsSunucu kanal sınırında.
400max_overwritesKanal, izin geçersiz kılma sınırında.
400cannot_target_selfBu işlem kendine uygulanamaz.
403cannot_timeoutSahip ve yöneticiler susturulamaz.
400not_in_voiceKişi seste değil.
400owner_cannot_leaveSunucunun sahibi sunucudan ayrılamaz.

Uygulamalar ve bot ekleme

HTTPKodAnlamı
403bots_closedYalnızca platform anahtarı kapalıyken döner; açık platformda üretilmez.
403bot_developer_requiredYalnızca kapalı dönemde üretilir; açık platformda her doğrulanmış hesap uygulama oluşturabilir.
403developer_terms_requiredHesap geliştirici sözleşmesini kabul etmedi; portaldan kabul et.
403email_not_verifiedE-posta doğrulanmamış.
403guest_not_allowedMisafir hesabı uygulama oluşturamaz.
400max_applicationsHesap, uygulama sınırında.
403bot_privateBu botu yalnızca sahibi ekleyebilir.
403bannedBot bu sunucudan yasaklı.
400bot_in_guildBot zaten sunucuda.
400bot_guild_limitBot, sunucu sınırında.
403member_list_intent_requiredÜye listesi GUILD_MEMBERS ister: portalda açık, 100 sunucudan itibaren de onaylı olmalı.
400intent_approval_requiredBot 100 ya da daha çok sunucuda ve ayrıcalıklı intent henüz onaylanmadı.
400review_requirementsDoğrulama önkoşulları eksik (errors içinde public, description, avatar, privacy_url, support_url, owner_mfa). Doğrulama
400review_pendingBu uygulama için zaten bekleyen bir doğrulama başvurusu var. Doğrulama
409review_decidedBu doğrulama başvurusu zaten sonuçlandırılmış. Doğrulama
400max_commandsBu kapsam bu türden komut sınırında: 100 eğik çizgi komutu, her menü türünden 15. Komutlar
403command_permission_escalationKişiye döner, bota değil: komut izinlerini düzenleyen kişi, komutun default_member_permissions bitlerine kendisi sahip değil. Sahip ve Administrator bunu almaz. Komut izinleri

Bileşene basma

Bunlar botuna değil, basan kişiye döner. Ayrıntı Bileşenler sayfasında.

HTTPKodAnlamı
404component_not_foundMesajda artık bu custom_id yok: bot butonu kaldırmış ya da mesajı bir bot göndermemiş.
400component_disabledBileşen kapalı.
409application_unavailableMesajı gönderen uygulama silinmiş, kapatılmış ya da botu artık burada değil.
429interaction_busyBasmalar uygulamanın ya da tüm botların sınırına takıldı; HTTP ile teslimde adresine aynı anda 16 teslim gidiyor ya da adresinin yanıtı tüm botların tavanına takıldı. retry_after kadar bekle.
504application_no_responseUygulamanın etkileşim adresi 3 saniyede kullanılabilir bir yanıt vermedi, yanıtı reddedildi ya da adres art arda hata verdiği için şu an aranmıyor. Sebebi teslim günlüğü söyler.
403cannot_dmKişi DM'de bu botu engellemiş; engeli kaldırana dek basamaz.

Komut çalıştırma

Bunlar da botuna değil, komutu çalıştıran kişiye döner; olay sana hiç gelmez. Kişi bir komutun boşa gittiğini söylüyorsa sebep çoğunlukla buradadır. Komut çalıştırma ve form gönderme basmalarla aynı sınırları paylaşır, interaction_busy burada da gelebilir. Otomatik tamamlama da aynı kodları döner, ama kendi sınırları vardır. Ayrıntı Komutlar sayfasında.

HTTPKodAnlamı
409command_outdatedKomutu, kişinin ekranı onu yükledikten sonra değiştirdin. Uygulama yeni tanımı alır, uyan değerleri korur ve kişi yeniden gönderir.
403command_forbiddenKişi komutu bu kanalda kullanamaz: UseApplicationCommands yok, zaman aşımında, bir komut izni kuralı engelliyor ya da default_member_permissions bitleri eksik.
400invalid_targetSeçenekteki ya da menüdeki kullanıcı, rol, kanal veya mesaj kişinin burada gösterebileceği biri değil: üye değil, başka sunucunun rolü, görmediği kanal, channel_types dışında bir kanal, başka kanalın mesajı, silinmiş ya da ephemeral mesaj, ya da kişinin ReadMessageHistory izni yok.
400command_channelBu kanalda komut çalışmaz. Komutlar sunucunun yazı kanallarında ve kişinin botla açtığı DM'de çalışır; iki kişinin DM'sinde ve grup DM'de değil.
404unknown_commandKomut silinmiş ya da başka sunucunun; ya da bot sunucudan çıkarılmış veya uygulaması kapalı. DM'de: komut başka botun, sunucu komutu, contexts içinde 1 yok ya da default_member_permissions dolu.
403missing_accessDM'de: kişi botla DM'yi kapatmış; yeniden açınca komut çalışır.
403cannot_dmDM'de: kişi botu engellemiş; engeli kaldırana dek komut çalıştıramaz.
400modal_expiredForm gönderiminde: form 1 saatten eski, üç kez gönderildi ya da başka bir kişinin veya kanalın. Kişi formu yeniden açar.

Etkileşim yanıtları

Bunlar botuna döner. Ne yapacağın Etkileşimler sayfasında.

HTTPKodAnlamı
400interaction_token_invalidToken bozuk, adresteki kimlikle uyuşmuyor ya da başka bir botun.
400interaction_timeoutİlk yanıt 3 saniyeyi geçti.
400interaction_already_acknowledgedBu etkileşime zaten yanıt verdin.
400interaction_not_acknowledgedTakip ya da düzenleme ilk yanıttan önce geldi.
400interaction_response_invalidtype bu etkileşime uymuyor, type: 7'de data yok, choices type: 8 dışında geldi, type: 9 otomatik tamamlamaya ya da gönderilen forma gitti veya yanında mesaj alanı var, ya da otomatik tamamlamanın token'ıyla takip mesajı veya düzenleme denendi.
400interaction_expiredToken'ın 15 dakikası doldu. Kişi ephemeral mesajın 15 dakikası dolmuş butonuna bastığında da bunu alır.
400ephemeral_filesEphemeral mesajda dosya ya da attachment:// var; bu mesajın dosya bağlanacak satırı yok.
404unknown_channelEphemeral mesajda: basan kişi artık kanalı görmüyor, ona bir şey gitmedi.
403dm_closedDM'de: kişi DM'yi kapattı ya da botu engelledi. Yanıt da gitmez.

Özel mesajlar

Bir kişinin botunla açtığı DM'de kendiliğinden yazarken (mesaj, tepki, sabitleme, yazıyor) dönenler. Ayrıntılar Özel mesajlar sayfasında.

HTTPKodAnlamı
403dm_closedKişi DM'yi kapattı ya da botu engelledi; ikisi aynı görünür. O kişiye yazmayı bırak, yeniden deneme.
403dm_window_closedKişinin son mesajı, komutu ya da basmasından beri 24 saat geçti. Kişi yeniden yazana dek bekle.
429rate_limitedX-RateLimit-Scope: bot ile: tüm DM'lerindeki serbest yazma sınırı (dm_send) doldu. retry_after kadar bekle.

Etkileşim adresi

Portalda adres kaydedilirken dönenler. Yalnızca hatanın türü söylenir. Ayrıntılar HTTP ile teslim sayfasında.

HTTPKodAnlamı
400endpoint_not_allowedAdres https, 443 ve genel bir ad değil, ya da N'oluyo'nun kendi adresi.
400endpoint_unreachableAdrese ulaşılamadı ya da 3 saniyede yanıt gelmedi.
400endpoint_bad_responseDoğru imzalı PING'e 200 {"type":1} dönmedi.
400endpoint_no_signature_checkYanlış imzalı isteğe 401 dönmedi: imzayı doğrula.

Hız sınırları

HTTPKodAnlamı
429rate_limitedHız sınırı aşıldı. retry_after kadar bekle.
429slowmodeKanalda yavaş mod açık. retry_after kadar bekle.
429upload_quotaKısa sürede çok fazla dosya yüklendi. retry_after kadar bekle.

Ayrıntılar Hız sınırları sayfasında.

N'oluyo ile giriş (OAuth2)

/oauth2/authorize ve /oauth2/@me/* rotaları standart {code, message} döndürür; /oauth2/token ve /oauth2/revoke ise OAuth2 standardına uygun {error, error_description} gövdesi döndürür:

HTTPKod / errorAnlamı
403oauth_closedYalnızca platform anahtarı kapalıyken döner; açık platformda üretilmez.
400oauth_unknown_clientclient_id geçersiz, bulunamadı ya da uygulaması devre dışı.
400oauth_bad_redirectredirect_uri bu uygulama için kayıtlı değil; sayfa o adrese yönlendirilmez.
400oauth_bad_requestresponse_type=code, state, code_challenge_method=S256 ya da scope geçersiz.
403oauth_user_capDoğrulanmamış uygulama 100 kullanıcı yetki sınırına ulaştı.
403terms_not_acceptedKişi güncel kullanım koşullarını henüz kabul etmedi.
403oauth_scope_requiredErişim token'ı bu rotanın istediği kapsama (guilds gibi) sahip değil.
400invalid_request/oauth2/token ya da /oauth2/revoke form gövdesi eksik veya bozuk.
401invalid_clientclient_id ya da client_secret yanlış veya eksik.
400invalid_grantYetki kodu ya da yenileme token'ı geçersiz, süresi dolmuş veya yeniden kullanılmış.
400unsupported_grant_typeYalnızca authorization_code ve refresh_token desteklenir.
429 / 503temporarily_unavailableToken hız sınırı aşıldı (Retry-After kadar bekle) ya da hizmet bakımda.

Ses (VOICE_JOIN_ERROR)

Gateway üzerinden op 4 gönderdiğinde bağlantı kapanmaz; bir engel varsa VOICE_JOIN_ERROR olayı içinde şu kodlardan biri gelir. Ayrıntılar Ses sayfasında.

KodAnlamı
unknown_guildSunucu yok ya da bot üye değil.
unknown_channelKanal bu sunucuda yok.
invalid_channel_typeKanal bir ses kanalı (type: 2) değil.
missing_accessBotun bu kanalı görme (ViewChannel) izni yok.
missing_permissionsBotun kanalda Connect izni yok ya da zaman aşımında.
channel_bot_limitBu ses kanalında en çok sayıda bot var.
guild_bot_limitBu sunucuda en çok sayıda bot seste.
app_voice_limitUygulama eşzamanlı ses bağlantısı sınırında.
bot_voice_fullPlatform genelindeki bot ses kapasitesi dolu.
voice_unavailableSes hizmeti o an kullanılamıyor.

Gateway kapanış kodları

Bu sayfadaki kodlar REST içindir. Gateway bağlantısı 4000 ile başlayan kapanış kodlarıyla kapanır: neyin yeniden bağlanmayı gerektirdiği Gateway sayfasındaki tabloda, adları Olaylar sayfasında.

Sunucu tarafı

HTTPKodAnlamıNe yapmalı
503maintenanceN'oluyo bakımda; bot ve uygulama rotaları bu yanıtı verir.Bir süre bekleyip yeniden dene. GET /api/v1/maintenance kimlik istemez ve enabled alanında bakımın sürüp sürmediğini söyler.
503voice_unavailableSes hizmeti bu sunucuda kullanılamıyor.Daha sonra yeniden dene.
500internalBeklenmeyen bir hata oldu.Biraz bekleyip yeniden dene; sürerse bize bildir.

Bu sayfayı yapay zekaya verirsen

Sırada ne var

  • Sık hatalar: en çok karşılaşılan belirtilerin adım adım çözümü
  • Hız sınırları: 429 yanıtları, kovalar ve geçersiz istek sınırı
  • Gateway: 4000 serisi WebSocket kapanış kodları ve yeniden bağlanma kuralları