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

Başka platformdan gelenler

Daha önce başka bir sohbet platformunda bot geliştirdiysen N'oluyo'nun kavramlarının büyük bölümü sana ilk dakikadan tanıdık gelecektir. Ancak N'oluyo başka bir platformun birebir kopyası veya uyumluluk katmanı değildir: gizlilik, güvenlik ve öngörülebilirlik için bilinçli olarak farklı tasarlanmış kuralları vardır.

Başka platformdan gelenler

Daha önce başka bir sohbet platformunda bot geliştirdiysen N'oluyo'nun kavramlarının büyük bölümü sana ilk dakikadan tanıdık gelecektir. Ancak N'oluyo başka bir platformun birebir kopyası veya uyumluluk katmanı değildir: gizlilik, güvenlik ve öngörülebilirlik için bilinçli olarak farklı tasarlanmış kuralları vardır.

Tanıdık gelenler

Şu yapı taşları bildiğin zihinsel modelle aynı şekilde çalışır:

  • Snowflake kimlikler: 64 bitlik zaman sıralı kimlikler JSON içinde her zaman ondalık metin ("21531879014400001") olarak taşınır; sağ kaydırma (id >> 22) mantığı aynıdır.
  • Bot kimlik başlığı: REST rotalarında Authorization: Bot <token>, gateway op 2 (IDENTIFY) çerçevesinde ise öneksiz düz token gönderilir.
  • Intent bit maskesi ve ayrıcalıklı üçlü: Hangi olayların geleceğini intents sayısı belirler; GUILD_MEMBERS (1 << 1), GUILD_PRESENCES (1 << 8) ve MESSAGE_CONTENT (1 << 15) ayrıcalıklıdır, portaldan açılır ve 100 sunucudan itibaren onay ister.
  • Shard mantığı ve oturum sürdürme: [shard_id, shard_count] dizisi, op 1 (HEARTBEAT) / op 11 (HEARTBEAT_ACK), READY ardından tek tek akan GUILD_CREATE olayları ve kopunca op 6 (RESUME) ile devam etme akışı tanıdıktır.
  • Zengin mesajlar ve etkileşimler: embeds, eylem satırlı (type: 1) buton ve seçim menüleri (components), eğik çizgi (/) ve sağ tık komutları, açılır formlar (modal), 3 saniyelik ilk yanıt kuralı, flags: 64 ephemeral yanıtlar ve Ed25519 imzalı HTTP etkileşim teslimi aynı kavramlarla çalışır.
  • Hız sınırı başlıkları: Yanıtlarda X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset-After, X-RateLimit-Bucket ve 429 durumunda Retry-After ile X-RateLimit-Scope döner.

Bilinçli olarak farklı olanlar

Başka bir platformdaki botunu N'oluyo'ya taşırken takılmamak için aşağıdaki fark tablosunu baştan kontrol et:

KonuN'oluyo'daki kuralNeden böyle ve ne yapmalısın
Taban adres ve sürümhttps://noluyo.net/api/v1 ve bot gateway adresi için GET /api/v1/gateway/bot (wss://noluyo.net/bot-gateway)/api/v9 veya /api/v10 yoktur; insan istemcilerinin kullandığı /gateway yolu bot token'ını 4004 ile reddeder.
Gateway opcode 30 ve 31op 30 (PHONE_CAMERA) ve op 31 (ACTIVE) yalnızca insan uygulamalarına aittir; gönderen bot 4001 UNKNOWN_OPCODE ile kapatılırSunucu abonelikleri için istemci tarafı özel opcode gönderilmez; sunucu olayları op 2 içindeki intents bitleriyle gelir.
Gateway sıkıştırması yokBot gateway bağlantısında zlib-stream veya zstd sıkıştırması sunulmaz; ?compress= parametresi yok sayılırHer çerçeve her iki yönde de düz UTF-8 JSON metnidir; ek sıkıştırma çözücüsü kurma.
Embed görselleri yalnızca attachment://embeds[].image.url, thumbnail.url, author.icon_url ve footer.icon_url yalnızca aynı mesajla yüklenen attachment://dosya.png değerini kabul ederDış https:// görsel adresi kullanıcıların IP adresini üçüncü taraf sunuculara sızdırabileceği için 400 validation_failed ile reddedilir. Görseli multipart/form-data ile ekle (Embed'ler).
Seste sıfır dinleme (yalnız yayın)Botlar seste op 4 ve LiveKit (wss://noluyo.net/rtc) üzerinden yalnızca tek bir mikrofon ses izi yayınlar; canSubscribe: false zorunludurÖzel UDP ses şifrelemesi yerine standart LiveKit WebRTC kullanılır ve medya sunucusu bota hiçbir ses karesi göndermez (Ses).
Sıkı DM gizliliği ve 24 saat penceresiPOST /users/@me/channels botlara kapalıdır (403 bot_forbidden); bot asla ilk DM'yi atamazDM kanalını yalnızca kişi açar. Kişinin son mesajı, komutu veya buton basmasından sonra botun 24 saat yanıt penceresi vardır; sonrasında 403 dm_window_closed döner (Özel mesajlar).
Katı JSON ve alan doğrulamasıKişi/uygulama rotalarında bilinmeyen JSON alanları 400 invalid_body ile reddedilir; bot rotalarında sayısal ID'ler ve şema dışı değerler reddedilirID ve izin bitlerini her zaman tırnak içinde metin ("68608") olarak gönder; yalnızca REST referansında belgelenen alanları kullan.
Ekleme bağlantısı biçimiBot ekleme adresi /oauth2/authorize?scope=bot değil, doğrudan https://noluyo.net/bot-ekle/<application_id>?izin=<deger> şeklindedir/oauth2/authorize yalnızca N'oluyo ile giriş yap (kullanıcı kimlik doğrulaması) içindir ve S256 PKCE zorunludur.
Ortak platform bütçesiBotların yoğun yazma ve büyük embed yayılma istekleri ortak koruma tavanına tabidir (X-RateLimit-Scope: shared ve fanout_too_large)429 aldığında X-RateLimit-Scope: shared gelebilir; retry_after süresine uy (Hız sınırları).

Taşıma kontrol listesi

Var olan bir botun iş mantığını N'oluyo'ya taşırken şu sırayı izle:

  1. Eski kütüphane bağımlılığını kaldırıp noluyo-bot paketini (JS veya Python) kur.
  2. Tüm dış URL'li embed görsellerini yerel dosya veya bellek tamponu yüklemesiyle attachment://... biçimine çevir.
  3. Üyelere kendiliğinden özel mesaj (DM) atan akışları kanal içi ephemeral (flags: 64) yanıtlara dönüştür; üye bota kendisi DM açarsa 24 saat kuralına ve dm_closed hatasına göre davran.
  4. Ses çalan kodun varsa özel ses soketi paketlerini çıkarıp bot.voice.join(...) ve @livekit/rtc-node / livekit akışına geçir; ses dinleme/kayıt özelliği varsa kaldır.
  5. Sunucu ekleme bağlantısını https://noluyo.net/bot-ekle/<app_id>?izin=... olarak güncelle.

Bu sayfayı yapay zekaya verirsen

Sırada ne var