# Değişiklikler

API'deki değişiklikler burada, en yenisi üstte olacak şekilde yazılır.

## 6. aşama: N'oluyo ile giriş, doğrulama, bot rehberi ve resmi kütüphaneler

Kullanıcıların kendi hesaplarıyla üçüncü taraf sitelere giriş yapması, büyüyen uygulamalar için doğrulama ve rehber süreci, iki dilde resmi `noluyo-bot` kütüphaneleri ve yapay zeka uyumlu doküman paketleri eklendi.

**Eklenenler**

- [N'oluyo ile giriş](https://noluyo.net/gelistirici/hesapla-giris.md): PKCE (`S256`) ve `state` zorunluluğuyla OAuth2 yetkilendirme akışı (`identify`, `email`, `guilds` kapsamları, yenileme rotasyonu, açık istemci desteği ve **Ayarlar → Bağlı uygulamalar** yönetimi).
- [Doğrulama](https://noluyo.net/gelistirici/dogrulama.md) ve [Rehbere girmek](https://noluyo.net/gelistirici/rehbere-girmek.md): 100 sunucu ve 100 OAuth2 kullanıcısı sınırını aşmak için portal başvurusu, ayrıcalıklı intent onayı ve `/kesfet` altındaki **Botlar** dizininde kategoriye göre listelenme.
- Resmi kütüphaneler: Node.js 22+ için sıfır bağımlılıklı [JavaScript kütüphanesi](https://noluyo.net/gelistirici/kutuphane-js.md) ve Python 3.11+ için `asyncio` tabanlı [Python kütüphanesi](https://noluyo.net/gelistirici/kutuphane-python.md) (`noluyo-bot`), ayrıca moderasyon, anket, ses ve OAuth2 örnek projeleri.
- Yapay zeka ve çevrimdışı doküman çıktıları: her rehber için ham `.md`, tarayıcıdan `.html` / `.pdf` kaydı, 30 KB altı `llms-kisa.txt` özeti ve tam `llms-full.txt` referansı.
- Yeni başlayanlar ve geçiş yapanlar için 13 yeni rehber: [Nereden başlamalı](https://noluyo.net/gelistirici/nereden-baslamali.md), [Yapay zekaya yazdır](https://noluyo.net/gelistirici/yapay-zekaya-yazdir.md), [Kurulum](https://noluyo.net/gelistirici/kurulum.md), [Hazır tarifler](https://noluyo.net/gelistirici/tarifler.md), [Botu açık tut](https://noluyo.net/gelistirici/botu-acik-tut.md), [Sık hatalar](https://noluyo.net/gelistirici/sik-hatalar.md), [Sözlük](https://noluyo.net/gelistirici/sozluk.md) ve [Başka platformdan gelenler](https://noluyo.net/gelistirici/baska-platformdan.md).

**Var olan botlara etkisi**

- Mevcut REST rotaları, WebSocket gateway çerçeveleri ve ses akışı geriye dönük uyumludur; çalışan botlarda kod değişikliği gerekmez.
- 100 sunucunun altındaki botlar eskisi gibi doğrulama başvurusu yapmadan çalışmayı sürdürür. Uygulama ilk kez oluşturulurken geliştirici sözleşmesi onayı (`developer_terms_required`) istenir; var olan uygulamalar kesintisiz çalışmaya devam eder.
- Acil durdurulan bir uygulamanın bot token'ı güvenlik gereği kalıcı olarak iptal edilir; uygulama yeniden açıldığında portaldan yeni token üretilir.

## 5. aşama: seste bot

Botlar artık ses kanallarına girip müzik, duyuru ya da ses efekti yayınlayabilir; ses kanallarındaki kimseyi ise hiçbir koşulda duyamaz.

**Eklenenler**

- [Ses](https://noluyo.net/gelistirici/ses.md): gateway `op 4` ile ses kanalına girme ve çıkma, `VOICE_SERVER_UPDATE` ve `VOICE_JOIN_ERROR` olayları, LiveKit üzerinden `ffmpeg` ile çalışan örnek (`cal.mjs`) ve bot ses sınırları.
- Bir bot farklı sunucularda aynı anda birden çok ses kanalında bulunabilir; web, masaüstü (oyun içi arayüz dahil) ve Android istemcilerinde **BOT** etiketiyle gösterilir ve kanalın kişi sınırına sayılmaz.
- [Gateway](https://noluyo.net/gelistirici/gateway.md#tam-bir-istemci) sayfasındaki `connect()` yardımcısı artık `{ send(op, d) }` döndürür; var olan örnekler dönüş değerini kullanmadığı için kırılmaz.

**Hâlâ olmayanlar**

- Resmi kütüphaneler

## 4. aşama: komutlar, formlar, özel mesajlar ve herkese açık beta

Bot platformu herkese açık beta olarak açıldı: e-postası doğrulanmış her hesap geliştirici sözleşmesini kabul edip uygulama oluşturabilir ve bot ekleyebilir. Davet ve `bots_closed` / `bot_developer_required` hataları kalktı.

**Eklenenler**

- [Komutlar](https://noluyo.net/gelistirici/komutlar.md): `/` listesinde ve kişi ya da mesaja sağ tıklayınca menüde görünen komutlar.
- [Otomatik tamamlama](https://noluyo.net/gelistirici/otomatik-tamamlama.md): komut seçeneğine yazarken en çok 25 öneri.
- [Formlar](https://noluyo.net/gelistirici/formlar.md): komuta ya da butona yanıt olarak açılan, en çok beş alanlı pencere.
- [Özel mesajlar](https://noluyo.net/gelistirici/ozel-mesajlar.md): kişi botla DM açar; komutlar, butonlar ve formlar orada da çalışır. Bot asla ilk yazan olmaz.
- [Komut izinleri](https://noluyo.net/gelistirici/komut-izinleri.md): sunucu yöneticileri komutların kimde ve hangi kanalda çalışacağını belirler.
- [HTTP ile teslim](https://noluyo.net/gelistirici/http-teslim.md): etkileşimleri gateway yerine imzalı bir https adresine aldır.
- Roller artık arayüzde ID'si ile kopyalanabilir; bkz. [İzinler](https://noluyo.net/gelistirici/izinler.md).

**Hâlâ olmayanlar**

- Botların ses kanalına girmesi
- Resmi kütüphaneler

## 3. aşama: embed, bileşen ve etkileşimler

Botların mesajları artık kart, buton ve menü taşıyabilir; basmalar bota gelir. Erişim o dönemde hâlâ davetleydi.

**Eklenenler**

- [Embed'ler](https://noluyo.net/gelistirici/embedler.md): başlık, açıklama, alanlar, renk, zaman ve aynı mesajla yüklenen görseller (`attachment://`). Mesajda en çok 10 embed.
- [Bileşenler](https://noluyo.net/gelistirici/bilesenler.md): beş stilde buton, bağlantı butonu, metin, kullanıcı, rol ve kanal menüsü.
- [Etkileşimler](https://noluyo.net/gelistirici/etkilesimler.md): `INTERACTION_CREATE` olayı ve dört yanıt türü (`type` 4, 5, 6, 7), `@original` düzenlemesi, takip mesajları.
- Yalnızca basan kişinin gördüğü mesajlar (`flags: 64`).
- Botlar için tam `allowed_mentions`: `parse`, `users`, `roles`, `replied_user`.
- Webhook mesajlarında embed.
- Yeni hız sınırı sınıfı `interaction` ve büyük embed'ler için tüm botların ortak bütçesi; ayrıntı [Hız sınırları](https://noluyo.net/gelistirici/rate-limit.md) sayfasında.
- Çalışan üç yeni örnek: [anket, rol seçici ve sayfalı liste](https://noluyo.net/gelistirici/ornekler.md#butonla-anket).

**2. aşamaya göre değişenler**

Bunlar var olan botları etkileyebilir:

- **`embeds`, `components` ve `flags` artık okunuyor.** Önceden botun isteğindeki bu alanlar bilinmeyen alan olarak yok sayılırdı. Şimdi denetlenir: kurala uymayan bir embed ya da bileşen `400 validation_failed`, kanal mesajında `flags: 64` `400 ephemeral_forbidden`, başka bir `flags` değeri `{"flags":"invalid"}` döner. Bu alanları gönderip sonucun yok sayılmasına güvenen bir bot artık hata alabilir.
- **`allowed_mentions` tam uygulanıyor.** Önceden yalnızca `replied_user` okunurdu. Şimdi `"parse": []` gönderen bir botun mesajındaki etiketler bildirim göndermez; eskiden gönderirdi. `parse` ile aynı türün listesini birlikte göndermek ya da `parse` içinde bilinmeyen bir değer `400 validation_failed` döner.
- **Mesaj düzenleme (`PATCH`) artık kısmi.** Önceden `content` zorunluydu. Şimdi `content`, `embeds` ve `components` ayrı ayrı gönderilir, göndermediğin alan olduğu gibi kalır. `content` göndermeden yapılan bir `PATCH` artık kabul edilir; `"content": ""` mesajda metin, embed ya da dosya bırakmıyorsa yine `required` döner.
- **Webhook'un `embeds`'i denetleniyor.** Önceden alınıp atılırdı. Şimdi liste olmayan `embeds` `400 invalid_body`, sınırı aşan bir alan `400 validation_failed` döner. Yalnızca embed içeren istek eskiden boş içerik diye `400` alırdı, şimdi çalışır. Görsel alanları sessizce düşer.
- **Yeni bir olay.** `INTERACTION_CREATE`, hangi intent'leri istersen iste bağlantına gelir. Bilmediğin olayları yok say.
- **Mesajda yeni alanlar.** Mesaj nesnesinde `embeds`, `components`, `flags`, `application_id` ve `interaction` gelebilir. **Mesaj içeriği** olmayan bota başkalarının `embeds` ve `components`'i gelmez.

**Henüz olmayanlar**

Bunlar ileride gelecek:

- Botların ses kanalına girmesi
- Resmi kütüphaneler

## 2. aşama: gateway

Botlar artık olayları canlı dinleyebilir. Erişim o dönemde davetleydi.

**Eklenenler**

- [Bot gateway'i](https://noluyo.net/gelistirici/gateway.md): WebSocket bağlantısı, heartbeat, identify, resume ve kapanış kodları. Adresi `GET /gateway/bot` söyler.
- [Olaylar](https://noluyo.net/gelistirici/olaylar.md): mesajlar, tepkiler, üyeler, roller, kanallar, ses, durum ve diğerleri; her biri alanları ve örneğiyle.
- [Intent'ler](https://noluyo.net/gelistirici/intentler.md): bot istediği olayları seçer. Üç ayrıcalıklı intent portaldan açılır.
- [Shard'lar](https://noluyo.net/gelistirici/shardlar.md): çok sunuculu botlar için birden çok bağlantı, önerilen ve zorunlu sayı.
- `op 3` ile botun durumunu değiştirme, `op 8` ile üye listesi ve arama.
- Tüm botların ortak yazma tavanı: `X-RateLimit-Scope: shared`.

**1. aşamaya göre değişenler**

Bunlar var olan botları etkileyebilir:

- **REST okumalarında içerik kuralı.** Sunucu kanallarında mesaj listesi, tek mesaj ve sabitlenenler artık **Mesaj içeriği** açık olmayan bir bota metni, ekleri ve diğer içeriği süzülmüş olarak döner; botun kendi mesajları ve kendisini etiketleyen mesajlar hariç. Kanalı okuyan eski botlar `content` alanını boş görür: portaldan **Mesaj içeriği**'ni aç.
- **İletmede içerik kuralı.** Bot okuyamadığı bir mesajı iletemez: `400 validation_failed`, `{"forward":"invalid"}`.
- **Üye listesi intent ister.** `GET /guilds/{guild_id}/members`, **Sunucu üyeleri** açık olmayan bota artık `403 member_list_intent_required` döner. Tek üye istemek açık kalır.
- **Token yenileme.** Eski token'la açık gateway bağlantıları `4004` ile hemen kapanır.

## 1. aşama: kapalı dönem

Bot API'nin ilk sürümü. Erişim davetle açılıyor.

**Eklenenler**

- Geliştirici portalı: uygulama oluşturma, token, ekleme bağlantısı.
- Uygulamalar ve bot hesapları; `Authorization: Bot <token>` ile kimlik doğrulama.
- Botu sunucuya ekleme ve bota ait yönetilen rol.
- Bot rotaları: kullanıcı, sunucu, kanal, rol, üye, yasak, mesaj, sabitleme ve tepki işlemleri.
- `X-RateLimit-*` başlıklarıyla hız sınırları ve geçersiz istekler için geçici engel.

## Bu sayfayı yapay zekaya verirsen

> **İpucu:** Eski bir bota yeni özellik ekletirken yapay zekaya her zaman 6. aşama kurallarını ve güncel `llms-kisa.txt` ya da `llms-full.txt` dosyasını ver ki eski aşamalardaki kısıtlamaları hâlâ geçerli sanmasın.

## Sırada ne var

- [Nereden başlamalı](https://noluyo.net/gelistirici/nereden-baslamali.md): sana uygun geliştirme yolunu seç
- [JavaScript kütüphanesi](https://noluyo.net/gelistirici/kutuphane-js.md) ve [Python kütüphanesi](https://noluyo.net/gelistirici/kutuphane-python.md): resmi `noluyo-bot` paketleri
- [N'oluyo ile giriş](https://noluyo.net/gelistirici/hesapla-giris.md): web sitene veya uygulamana kullanıcı girişi ekle
