İçeriğe geç
N'oluyo
Kavramlar

Uygulamalar ve botlar

Son güncelleme:

Bir uygulama, botunu temsil eder: adı, resmi, token'ı ve sunuculara ekleme bağlantısı onda durur. Her uygulamanın tek bir bot hesabı ve tek bir token'ı vardır, botun sunuculardaki görünen adı da uygulamanın adıdır.

Uygulamalarını geliştirici portalından yönetirsin. N'oluyo hesabınla giriş yapman yeterlidir.

Kim uygulama oluşturabilir

Herkes uygulama oluşturabilir (herkese açık beta). Uygulama oluşturmak için:

  • E-posta adresin doğrulanmış olmalı,

  • Geliştirici sözleşmesini kabul etmiş olmalısın; portal ilk seferde sorar,

  • Hesabın misafir hesabı olmamalı; misafir hesaba önce ayarlardan e-posta ve şifre bağla.

Bir hesap en çok 25 uygulamaya sahip olabilir. Portal, bir koşul eksikse ne yapman gerektiğini söyler.

Uygulama oluşturma

Uygulamalarım sayfasında Yeni uygulama'ya bas.

AlanKural
Uygulama adıEn çok 32 karakter. Botun görünen adı olur.
Bot kullanıcı adı4 ile 32 karakter; küçük harf, rakam, _ ve .; art arda iki nokta olamaz. Sonradan değiştirilemez, başkası almışsa kullanılamaz.

Oluştur'a basınca token gösterilir. Kopyala ile al: bir daha gösterilmez. Uygulama özel başlar, yani botu yalnızca sen ekleyebilirsin.

Uygulama sayfası

Genel

Botun resmini, Uygulama adı'nı ve en çok 400 karakterlik Açıklama'yı burada değiştirirsin. Açıklama, bot eklenirken gösterilir. Resim PNG, JPEG, WebP veya GIF olabilir; en çok 5 MB (hareketli GIF 10 MB) ve 4096×4096 piksel.

Herkese açık açıksa sunucu yöneten herkes botu bağlantıyla ekleyebilir. Kapalıysa yalnızca sen eklersin.

Ayrıcalıklı intent'ler

Sunucu üyeleri, Presence ve Mesaj içeriği hassas veri açar, bu yüzden bot bunları ancak burada açtıysan identify'da isteyebilir. Yeni açtığın bir intent, çalışan oturuma kendiliğinden geçmez: programını yeniden başlat. Kapattığında botun bağlantıları hemen düşer. Bot 100 ya da daha çok sunucudaysa bu intent'ler için onay gerekir. Ne işe yaradıkları Intent'ler sayfasında.

Token

Kayıtlı token güvenlik için gösterilmez. Kaybettiysen ya da sızdığından şüpheleniyorsan Token'ı yenile'ye bas: yeni token yalnızca o anda gösterilir, eskisi hemen çalışmaz olur ve botun açık gateway bağlantıları 4004 ile kapanır. Token'ı nasıl koruyacağın Kimlik doğrulama sayfasında.

Etkileşim adresi

Etkileşimleri gateway yerine kendi https adresine almak istersen Etkileşimler bölümünde Etkileşim adresi'ne yaz ve Kaydet ve test et'e bas. N'oluyo adrese iki imzalı PING yollar; doğru yanıtlanırsa adres kaydedilir ve etkileşimler artık oraya gider. Herkese açık anahtar isteklerin imzasını doğrulamana yarar. Adresi kaldır gateway'e döner, Teslim günlüğü son teslimleri gösterir. Adresi yalnızca sen görürsün. Nasıl kurulduğu HTTP ile teslim sayfasında.

Ekleme bağlantısı

Bota vereceğin izinleri seç; bağlantı buna göre oluşur. Bağlantıyı kopyala ile paylaş ya da Bağlantıyı aç ile kendin kullan. Yalnızca botunun gerçekten ihtiyaç duyduğu izinleri iste.

Bağlantının biçimi şöyledir; izin, seçilen izinlerin değeridir:

Metin
https://noluyo.net/bot-ekle/<application_id>?izin=68608

Tehlikeli bölge

Uygulamayı sil: Bot bulunduğu tüm sunuculardan çıkar ve token'ı çalışmayı bırakır. Gönderdiği mesajlar kalır. Hesabını silersen uygulamaların da silinir.

Oluşturma, token yenileme ve resim yüklemenin kendi sınırları vardır; bkz. Hız sınırları.

Botu sunucuya ekleme

Bağlantıyı açan kişi giriş yapar, botun adını, açıklamasını ve istediği izinleri görür, Sunucu listesinden bir sunucu seçer ve Sunucuya ekle'ye basar. Listede yalnızca yönettiği sunucular görünür.

  • Kişinin kendisinde olmayan izinler bota verilmez; sayfa bunları işaretler.

  • Sayfa yalnızca listelediği izinleri verir. Portaldaki listede olmayan bir izin gerekirse, sunucu yöneticisi onu bot rolüne sonradan ekleyebilir. Embed göndermek için ayrı bir izin gerekmez; Embed'ler ve bileşenler için SendMessages yeter.

Şu durumlarda bot eklenemez:

DurumHata kodu
Kişide sunucuda ManageGuild izni yokmissing_permissions
Bot özel ve kişi sahibi değilbot_private
Bot bu sunucudan yasaklıbanned
Bot zaten sunucudabot_in_guild
Doğrulanmamış bot 100 sunucuya ulaşmışbot_guild_limit
Sunucu rol sınırındamax_roles

100 sunucu sınırını kaldırmak için Doğrulama, botunu /kesfet dizininde göstermek için Rehbere girmek sayfasındaki adımları izle.

Botun rolü

Bir sunucuya eklenen bot, otomatik olarak kendi rolünü alır. API'de buna yönetilen rol denir:

  • Rolün adı uygulamanın adıdır, izinleri eklenirken seçilen izinlerdir.

  • Rolün application_id alanı doludur; bu rolü böyle tanırsın. Uygulamada "Bot rolü" etiketiyle görünür.

  • Rol, doğrudan @everyone'ın üstüne konur. Bu yüzden bot başlangıçta rolü olan üyelere karışamaz; bkz. rol sıralaması.

  • Rol silinemez, başka birine verilemez, bottan alınamaz (managed_role). Otomatik atanan role çevrilemez.

  • Sunucu yöneticileri rolün adını, rengini, izinlerini ve sırasını, normal rol kurallarıyla değiştirebilir.

  • Bot sunucudan ayrılırsa, atılırsa veya yasaklanırsa rol de silinir. Yeniden eklenince yeni bir rol oluşur.

Botun izinleri yalnızca bu rolden gelmez: @everyone rolünün izinleri ve kanal ayarları da geçerlidir.

Botun yapamadıkları

Bot sunucuya kendisi katılamaz, sunucu oluşturamaz, davet kullanamaz, DM kanalı açamaz (kişi açar, bkz. Özel mesajlar), arkadaş ekleyemez ve kendi profilini API ile değiştiremez. Bu rotalar 403 bot_forbidden döner. Bot, sunucudan DELETE /users/@me/guilds/{guild_id} ile ayrılabilir.

API ile yönetmek

Bot kurmak için bu bölüme ihtiyacın yok. Portalın yaptığı her şeyi otomatikleştirmek istersen aynı rotaları kendin çağırabilirsin.

Bu rotalar bot token'ını kabul etmez (403 bot_forbidden), kişi oturumu ister: Authorization: Bearer <oturum token'ı>. Oturum token'ı hesabının tamamına erişim sağlar; botun koduna veya sunucusuna asla koyma.

Oturum token'ını girişten alırsın:

Bash
curl -X POST "https://noluyo.net/api/v1/auth/login" \
  -H "Content-Type: application/json" \
  -d '{"email":"sen@example.com","password":"parolan"}'

İki adımlı doğrulama açıksa yanıt {"mfa":true,"ticket":"..."} olur; POST /api/v1/auth/mfa/totp isteğine {"ticket":"...","code":"123456"} göndererek tamamlarsın. Google veya Apple ile açılmış hesabın, parola belirlenene kadar parolası yoktur.

İşlemRota
Uygulama oluşturPOST /applications
Uygulamaları listeleGET /applications
Birini görGET /applications/{application_id}
Ad, açıklama, public değiştirPATCH /applications/{application_id}
SilDELETE /applications/{application_id}
Token'ı yenilePOST /applications/{application_id}/token
Avatar yükle (file parçası)POST /applications/{application_id}/avatar
Avatarı kaldırDELETE /applications/{application_id}/avatar
Ekleme ekranının bilgileriGET /applications/{application_id}/public
Botu sunucuya eklePOST /applications/{application_id}/authorize

Botu API ile eklemek şöyledir; başarıda 204 döner:

Bash
curl -i -X POST "https://noluyo.net/api/v1/applications/$APP_ID/authorize" \
  -H "Authorization: Bearer $SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"guild_id":"'"$GUILD_ID"'","permissions":"68608"}'

Sayfadan farklı olarak API, kişide olmayan bir izni çıkarmaz, isteği 403 missing_permissions ile reddeder; listede olmayan izinleri de verebilir. permissions yoksa rolün izni olmaz. Başkasının uygulaması bu rotalarda 404 unknown_application verir (herkese açık botlarda public ve authorize hariç).

Ayrıntılar ve örnekler REST referansında.

Bu sayfayı yapay zekaya verirsen

Sırada ne var

  • İzinler: ekleme bağlantısındaki izin değerinin hesaplanması ve rol sırası

  • Doğrulama: 100 sunucu sınırını aşmak ve ayrıcalıklı intent onayı almak

  • N'oluyo ile giriş: aynı uygulamayla web sitene kullanıcı girişi eklemek