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>, gatewayop 2(IDENTIFY) çerçevesinde ise öneksiz düztokengönderilir.Intent bit maskesi ve ayrıcalıklı üçlü: Hangi olayların geleceğini
intentssayısı belirler;GUILD_MEMBERS(1 << 1),GUILD_PRESENCES(1 << 8) veMESSAGE_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),READYardından tek tek akanGUILD_CREATEolayları ve kopuncaop 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: 64ephemeral 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-Bucketve429durumundaRetry-AfterileX-RateLimit-Scopedö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:
| Konu | N'oluyo'daki kural | Neden böyle ve ne yapmalısın |
|---|---|---|
| Taban adres ve sürüm | https://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 31 | op 30 (PHONE_CAMERA) ve op 31 (ACTIVE) yalnızca insan uygulamalarına aittir; gönderen bot 4001 UNKNOWN_OPCODE ile kapatılır | Sunucu abonelikleri için istemci tarafı özel opcode gönderilmez; sunucu olayları op 2 içindeki intents bitleriyle gelir. |
| Gateway sıkıştırması yok | Bot gateway bağlantısında zlib-stream veya zstd sıkıştırması sunulmaz; ?compress= parametresi yok sayılır | Her ç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 eder | Dış 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 penceresi | POST /users/@me/channels botlara kapalıdır (403 bot_forbidden); bot asla ilk DM'yi atamaz | DM 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 reddedilir | ID 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çimi | Bot 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çesi | Botları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:
Eski kütüphane bağımlılığını kaldırıp
noluyo-botpaketini (JS veya Python) kur.Tüm dış URL'li embed görsellerini yerel dosya veya bellek tamponu yüklemesiyle
attachment://...biçimine çevir.Ü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 vedm_closedhatasına göre davran.Ses çalan kodun varsa özel ses soketi paketlerini çıkarıp
bot.voice.join(...)ve@livekit/rtc-node/livekitakışına geçir; ses dinleme/kayıt özelliği varsa kaldır.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
JavaScript kütüphanesi ve Python kütüphanesi: resmi
noluyo-botSDK'ları ile temiz başlangıçEmbed'ler:
attachment://görsel kuralı ve kart sınırlarıÖzel mesajlar ve Ses: DM penceresi ve LiveKit tabanlı yayın modeli