Ana içeriğe geç

Örnek (instance)

Bir TEBHOS kurulumunun uç noktalarını, etkin özelliklerini, herkese açık yapılandırmasını ve sınırlarını kimlik doğrulaması gerektirmeyen tek bir istekle keşfedin.

Örnek keşfini al, API'nin giriş noktasıdır. Yalnızca TEBHOS kaynağını (origin) bilen bir istemci önce /.well-known/tebhos adresini okur; bu tek yanıt API taban URL'sini, Gateway WebSocket URL'sini, medya taban URL'sini, CAPTCHA sağlayıcısını ve hesaplar ile sunucular için geçerli sınırları açıklar.

Yol kimlik doğrulaması gerektirmez ve bir kimlik bilgisi yanıtta hiçbir şeyi değiştirmez. Authorization başlığı olmadan gönderildiğinde genel hız sınırından da muaftır.

Örnek keşif nesnesi

Keşif belgesi, tek bir kurulumun herkese açık tanımının tamamıdır. Burada listelenen her alan her zaman bulunur.

Yapı

Alan Tür Açıklama
api_code_version integer Bu kurulumun sunduğu API sözleşmesinin sürümü. Geçerli değer 1
endpoints örnek uç noktaları nesnesi Bu kurulumun herkese açık hizmet uç noktaları
captcha CAPTCHA yapılandırması nesnesi Herkese açık CAPTCHA yapılandırması
features örnek özellikleri nesnesi Kurulum özellik anahtarları
gif GIF sağlayıcısı nesnesi GIF sağlayıcısı ve atıf gereksinimi
sso SSO durumu nesnesi Herkese açık tek oturum açma (SSO) durumu
registration kayıt politikası nesnesi Herkese açık kayıt politikası
community topluluk politikası nesnesi Tek topluluk ve DM politikası
services hizmet kullanılabilirliği nesnesi İsteğe bağlı entegrasyonların kullanılabilirliği
limits sınır yapılandırması nesnesi Sıralı sınır kuralları ve kurulumun tanımladığı özellikler (trait)
push anlık bildirim yapılandırması nesnesi Herkese açık Web Push kimliği
app_public herkese açık uygulama yapılandırması nesnesi Marka, kurulum, yasal ve kayıt formu yapılandırması
version string API sunucusunun derleme sürümü, örneğin 0.1.0
gateway ?string Yapılandırılmış herkese açık Gateway URL'si; yapılandırılmamışsa null. endpoints.gateway tercih edilmelidir
cdn ?string Yüklenen dosyaların yapılandırılmış herkese açık taban URL'si; yapılandırılmamışsa null
experiments object Her zaman boş bir nesne; deneyler Deneyler üzerinden sunulur

Son dört alan, eski tüketiciler için korunan kısa bir eski özet niteliğindedir. Yeni istemciler gateway yerine endpoints okur.

Örnek

{
  "api_code_version": 1,
  "version": "0.1.0",
  "gateway": "wss://tebhos.com/ws",
  "cdn": "https://cdn.tebhos.com",
  "experiments": {},
  "endpoints": {
    "api": "https://tebhos.com/api",
    "api_client": "https://tebhos.com/api",
    "api_public": "https://tebhos.com/api",
    "gateway": "wss://tebhos.com/ws",
    "media": "https://tebhos.com/api/v1",
    "static_cdn": "https://tebhos.com",
    "marketing": "https://tebhos.com",
    "admin": "https://admin.tebhos.com",
    "invite": "https://tebhos.com",
    "gift": "https://tebhos.com",
    "webapp": "https://tebhos.com"
  },
  "captcha": {
    "provider": "hcaptcha",
    "hcaptcha_site_key": "00000000-0000-0000-0000-000000000000",
    "turnstile_site_key": null
  },
  "features": {
    "voice_enabled": true,
    "stripe_enabled": true,
    "payment_provider": "polar",
    "self_hosted": true,
    "presigned_attachment_uploads": true,
    "emails_enabled": true,
    "sms_enabled": false
  },
  "gif": {"provider": "klipy", "display_name": "KLIPY", "attribution_required": true},
  "sso": {"enabled": false, "enforced": false, "display_name": null, "redirect_uri": "https://tebhos.com/auth/sso/callback"},
  "registration": {"mode": "open", "admin_registration_urls_enabled": true},
  "community": {"single_community": false, "single_community_guild_id": null, "direct_messages_disabled": false},
  "services": {"gif_enabled": true, "youtube_enabled": false, "bluesky_enabled": false},
  "limits": {"version": 1, "traitDefinitions": ["premium"], "rules": ["..."]},
  "push": {"public_vapid_key": "BM4KrfS2..."},
  "app_public": {
    "branding": {"product_name": "TEBHOS", "icon_url": null, "symbol_url": null, "logo_url": null, "wordmark_url": null, "favicon_url": null, "theme_color": null},
    "setup": {"configured": true, "admin_url": "https://admin.tebhos.com"},
    "legal": {"terms_url": null, "privacy_url": null},
    "registration": {"collect_date_of_birth": true}
  }
}

Yukarıdaki değerler örnek amaçlıdır. Her zaman kurulumun gerçekte döndürdüğü değerleri kullanın.

Örnek uç noktaları nesnesi

Her değer mutlak bir URL'dir. Birkaç uç nokta aynı kaynağı paylaşıp yalnızca yolda farklılaşabilir.

Yapı

Alan Tür Açıklama
api string API kökü. REST taban URL'sini elde etmek için sonuna /v1 ekleyin
api_client string api ile aynı değer; web uygulamasının kullandığı taban
api_public string api ile aynı değer; bir botun, kütüphanenin veya diğer üçüncü taraf istemcilerin kullandığı taban
gateway string ws veya wss şemalı Gateway WebSocket URL'si
media string Medya yollarının (avatarlar, simgeler, afişler, /files/...) tabanı. Bu, API v1 tabanının kendisidir; bu yüzden bir avatar URL'si {media}/avatars/{user_id}/{hash}.{ext} biçimindedir
static_cdn string Yerleşik emoji görselleri gibi statik varlıkların tabanı
marketing string Tanıtım sitesinin taban URL'si
admin string Yönetim panelinin taban URL'si
invite string Davet bağlantılarının üzerine kurulduğu taban URL
gift string Hediye bağlantılarının üzerine kurulduğu taban URL
webapp string Web uygulamasının taban URL'si

Kurulum ayrı alan adları yapılandırmadıkça invite ve gift varsayılan olarak web uygulaması URL'sidir.

Yayımlanan uç noktayı tam olarak yayımlandığı gibi kullanın

İstemci, yayımlanan bir http değerini https'e yükseltMEMELİ, bir hatadan sonra https'i düşürMEMELİ, bir bağlantı noktasını atMAMALI veya bir ana makine adı tahmin etMEMELİDİR. Yerel geliştirme kurulumu, açık bağlantı noktalarıyla düz http ve ws değerleri yayımlar.

CAPTCHA yapılandırma nesnesi

Kurulumun hangi CAPTCHA sağlayıcısını kullandığı ve istemcinin sınamayı çizmek için ihtiyaç duyduğu site anahtarı.

Yapı

Alan Tür Açıklama
provider string Etkin CAPTCHA sağlayıcısı
hcaptcha_site_key ?string Yapılandırılmış hCaptcha site anahtarı veya null
turnstile_site_key ?string Yapılandırılmış Turnstile site anahtarı veya null

hCaptcha gizli anahtarı ve site anahtarının ikisi de yapılandırılmışsa provider değeri hcaptcha, değilse iki Turnstile anahtarı da yapılandırılmışsa turnstile, aksi hâlde none olur. Anahtar yapılandırıldığı her durumda yayımlandığından, provider değeri none iken bir site anahtarı bulunabilir; dallanmayı anahtarın varlığına göre değil, provider değerine göre yapın.

CAPTCHA sağlayıcıları

Değer Açıklama
none CAPTCHA gerekmez
hcaptcha CAPTCHA korumalı işlemler hCaptcha sınamalarıyla korunur
turnstile CAPTCHA korumalı işlemler Cloudflare Turnstile sınamalarıyla korunur

X-Captcha-Token ve X-Captcha-Type istek başlıkları dahil sınama el sıkışması CAPTCHA işleme sayfasında anlatılmıştır.

Örnek özellikleri nesnesi

İstemcinin bir özelliği sunmadan önce okuduğu, kurulum geneli anahtarlar.

Yapı

Alan Tür Açıklama
voice_enabled boolean Ses ve görüntünün (LiveKit) yapılandırılıp yapılandırılmadığı
stripe_enabled boolean Ücretli Premium ödeme akışının yapılandırılıp yapılandırılmadığı. Ad istemci uyumluluğu için korunur; ödeme sağlayıcısı her zaman Polar'dır
payment_provider string Ödeme sağlayıcısı, her zaman polar. Bkz. Faturalandırma
self_hosted boolean Her zaman true; her TEBHOS kurulumu tek kiracılı bir kurulumdur
presigned_attachment_uploads boolean Yüklemelerin önceden imzalanmış nesne depolama URL'leri kullanıp kullanmadığı (bkz. Ek yüklemeleri)
emails_enabled boolean Bir e-posta sağlayıcısının yapılandırılıp yapılandırılmadığı
sms_enabled boolean SMS tesliminin kullanılabilir olup olmadığı. False iken telefon doğrulaması ve SMS ikinci faktörleri kullanılamaz

GIF sağlayıcı nesnesi

GIF sağlayıcısı ve istemcinin sağlayıcı atfını göstermesi gerekip gerekmediği.

Yapı

Alan Tür Açıklama
provider string Sağlayıcının makine adı, her zaman klipy
display_name string Sağlayıcının insan tarafından okunabilir adı, her zaman KLIPY
attribution_required boolean Her zaman true: GIF sonuçlarını gösteren istemci, sağlayıcı atfını bunların yanında gösterir

İstemci, GIF seçiciyi sunup sunmayacağına karar vermek için services.gif_enabled değerini okur.

Kayıt politikası nesnesi

Bu kurulumda kimin hesap açabileceği.

Yapı

Alan Tür Açıklama
mode string Kayıt modu
admin_registration_urls_enabled boolean Yönetici tarafından verilen kayıt URL'lerinin yönetim panelinde etkin olup olmadığı

Kayıt modları

Değer Açıklama
open Herkes kayıt olabilir
approval Yeni hesaplar yönetici onayını bekler
closed Herkese açık kayıt kapalıdır

Değer, yönetim panelinin sakladığı ayarı yansıtır. Kayıt yolunun kendisinin neleri denetlediği için bkz. Hesap oluştur.

Topluluk politikası nesnesi

Kurulumun tek bir topluluk olarak çalışıp çalışmadığı ve DM'lerin kullanılabilir olup olmadığı.

Yapı

Alan Tür Açıklama
single_community boolean Kurulumun tek bir topluluk olarak çalışıp çalışmadığı
single_community_guild_id ?snowflake Topluluk sunucusunun kimliği; yalnızca single_community true iken yayımlanır, aksi hâlde null
direct_messages_disabled boolean DM'lerin kurulum genelinde devre dışı olup olmadığı

Hizmet kullanılabilirliği nesnesi

Her isteğe bağlı entegrasyonun kullanılabilir olup olmadığı.

Yapı

Alan Tür Açıklama
gif_enabled boolean GIF seçicinin kullanılabilir olup olmadığı. Bir GIF sağlayıcı anahtarı yapılandırıldığında varsayılan olarak true'dur ve bir yönetici tarafından geçersiz kılınabilir
youtube_enabled boolean YouTube bağlantı zenginleştirmesinin kullanılabilir olup olmadığı. Bir yönetici etkinleştirmedikçe false
bluesky_enabled boolean Bluesky bağlantılarının kullanılabilir olup olmadığı. Bir yönetici etkinleştirmedikçe false; bkz. Bağlantılar

Anlık bildirim yapılandırma nesnesi

Kurulumun herkese açık Web Push kimliği.

Yapı

Alan Tür Açıklama
public_vapid_key ?string Bir tarayıcıyı anlık bildirimlere abone ederken kullanılan Web Push VAPID açık anahtarı; Web Push yapılandırılmamışsa null

Sınır yapılandırma nesnesi

İstemcinin bir hesaba veya sunucuya uygulanan sınırları hesaplamak için değerlendirdiği sıralı kurallar.

Yapı

Alan Tür Açıklama
version integer Aktarım biçimi sürümü. Saklanan yapılandırma başka bir değer ayarlamadıkça 1
traitDefinitions array[string] Kurulumun tanımladığı özellik (trait) adları. Hazır yapılandırma premium tanımlar
rules array[sınır kuralı nesnesi] Sırayla değerlendirilecek kurallar

Hazır yapılandırmada üç kural vardır: default (filtre yok, her sınır anahtarını ayarlar), premium (premium özelliğine göre filtrelenir) ve very_large_guild (VERY_LARGE_GUILD sunucu özelliğine göre filtrelenir).

İstemci default kuralından başlar, ardından filtrelerinin tümü eşleşen her kuralı uygular: adını verdiği her özellik hesabın özelliklerinden biridir ve adını verdiği her sunucu özelliği sunucunun özelliklerinden biridir. Eşleşen bir kuralın değerleri, ayarladığı anahtarlar için geçerli değerlerin yerini alır.

İşlem kendi sınırını uygular

Belge, istemcinin bir işlemi denemeden önce doğru sınırları göstermesini sağlar. Bir sınırı aşan istek yine de işlemin kendi belgelenmiş hatasıyla başarısız olur.

Sınır kuralı nesnesi

Sınır yapılandırmasının tek bir kuralı.

Yapı

Alan Tür Açıklama
id string Kararlı kural tanımlayıcısı
filters? sınır filtreleri nesnesi Kuralı seçen özellikler ve sunucu özellikleri; kural her zaman eşleşiyorsa yoktur
limits map[string, integer] Sınır anahtarına göre anahtarlanmış değerler

Yönetim panelinde düzenlenmiş bir kural fazladan kayıt tutma üyeleri (örneğin modifiedFields) taşıyabilir. İstemci tanımadığı üyeleri yok saymak ZORUNDADIR.

Örnek

{
  "id": "premium",
  "filters": {"traits": ["premium"]},
  "limits": {"feature_higher_video_quality": 1}
}

Sınır filtreleri nesnesi

Bir sınır kuralının gerektirdiği özellikler ve sunucu özellikleri.

Yapı

Alan Tür Açıklama
traits? array[string] Tümünün bulunması gereken özellik adları
guildFeatures? array[string] Tümünün bulunması gereken sunucu özelliği adları

Sınır anahtarları

Adı feature_ ile başlayan anahtar bir özellik kapısıdır: özellik kullanılamıyorsa 0, kullanılabiliyorsa 1. Diğer her anahtar, açıklamasında belirtilen birimde bir üst sınırdır. Varsayılanlar hazır default kuralının değerleridir; bir kurulum bunları değiştirebilir.

Anahtar Varsayılan Açıklama
avatar_max_size 10485760 Bayt cinsinden en büyük avatar yükleme boyutu
emoji_max_size 524288 Bayt cinsinden en büyük emoji yükleme boyutu
sticker_max_size 524288 Bayt cinsinden en büyük çıkartma yükleme boyutu
feature_animated_avatar 1 Animasyonlu avatar yüklemeleri
feature_animated_banner 1 Animasyonlu afiş yüklemeleri
feature_custom_discriminator 1 Özel ayırıcı (discriminator) seçimi
feature_custom_notification_sounds 1 Özel bildirim sesleri
feature_early_access 1 Erken erişim özellikleri
feature_global_expressions 1 İfadeleri tüm sunucularda kullanma
feature_higher_video_quality 0 Daha yüksek yayın kalitesi (premium özelliği için 1)
feature_per_guild_profiles 1 Her sunucu için farklı profil
feature_voice_entrance_sounds 1 Sese katılırken ses çalma
max_attachment_file_size 524288000 Bayt cinsinden her ekin en büyük boyutu
max_attachments_per_message 10 Mesaj başına en fazla ek
max_bio_length 320 Biyografide en fazla karakter
max_bookmarks 300 En fazla kayıtlı mesaj
max_channels_per_category 50 Kategori başına en fazla kanal
max_created_packs 50 Bir hesabın oluşturabileceği en fazla ifade paketi
max_custom_backgrounds 15 En fazla özel profil arka planı
max_embeds_per_message 10 Mesaj başına en fazla gömme (embed)
max_favorite_meme_tags 10 Kayıtlı mem başına en fazla etiket
max_favorite_memes 500 En fazla kayıtlı mem
max_group_dm_recipients 50 Bir grup DM'nin en fazla üyesi
max_group_dms_per_user 150 Hesap başına en fazla grup DM
max_guild_channels 500 Sunucu başına en fazla kanal
max_guild_emojis 500 Sunucu başına en fazla emoji
max_guild_emojis_animated 500 max_guild_emojis için uyumluluk takma adı
max_guild_emojis_animated_more 500 max_guild_emojis için uyumluluk takma adı
max_guild_emojis_static 500 max_guild_emojis için uyumluluk takma adı
max_guild_emojis_static_more 500 max_guild_emojis için uyumluluk takma adı
max_guild_invites 1000 Sunucu başına en fazla etkin davet
max_guild_members 1000000 Sunucu başına en fazla üye (VERY_LARGE_GUILD özelliğiyle 10000000)
max_guild_roles 250 Sunucu başına en fazla rol
max_guild_stickers 500 Sunucu başına en fazla çıkartma
max_guild_stickers_more 500 max_guild_stickers için uyumluluk takma adı
max_guilds 200 Bir hesabın katılabileceği en fazla sunucu
max_installed_packs 50 Bir hesabın kurabileceği en fazla ifade paketi
max_message_length 4000 Mesaj başına en fazla karakter
max_pack_expressions 200 Paket başına en fazla ifade
max_private_channels_per_user 250 Hesap başına en fazla DM kanalı
max_reactions_per_message 30 Mesaj başına en fazla farklı tepki
max_relationships 1000 En fazla arkadaş ve engelleme
max_users_per_message_reaction 1000000 Tek bir tepkideki en fazla kullanıcı
max_voice_message_duration 1200 Saniye cinsinden en uzun sesli mesaj süresi
max_webhooks_per_channel 15 Kanal başına en fazla webhook
max_webhooks_per_guild 1000 Sunucu başına en fazla webhook

Herkese açık uygulama yapılandırma nesnesi

İstemcinin herhangi biri oturum açmadan önce okuduğu marka, kurulum durumu, yasal bağlantılar ve kayıt formu ayarları. Bu değerleri yönetim paneli düzenler.

Yapı

Alan Tür Açıklama
branding herkese açık marka nesnesi Örneğin kimliği
setup herkese açık kurulum durumu nesnesi İlk yapılandırma durumu
legal herkese açık yasal yapılandırma nesnesi Yasal belge URL'leri
registration herkese açık kayıt alanları nesnesi Kayıt formu ayarları

Herkese açık marka nesnesi

Yapı

Alan Tür Açıklama
product_name string İstemcinin gösterdiği örnek adı; değiştirilmedikçe TEBHOS
icon_url ?string Tam uygulama simgesi URL'si veya null
symbol_url ?string Kompakt uygulama sembolü URL'si veya null
logo_url ?string Uygulama logosu URL'si veya null
wordmark_url ?string Uygulama yazı logosu URL'si veya null
favicon_url ?string Tarayıcı favicon URL'si veya null
theme_color ?string Tarayıcı tema rengi veya null

Herkese açık kurulum durumu nesnesi

Yapı

Alan Tür Açıklama
configured boolean İlk kurulum yapılandırmasının tamamlanıp tamamlanmadığı (varsayılan true)
admin_url ?string Yönetim paneli URL'si; yapılandırılmamışsa null

Yapı

Alan Tür Açıklama
terms_url ?string Hizmet şartları URL'si veya null
privacy_url ?string Gizlilik politikası URL'si veya null

Herkese açık kayıt alanları nesnesi

Yapı

Alan Tür Açıklama
collect_date_of_birth boolean Kayıt formunun doğum tarihi toplayıp toplamadığı (varsayılan true). Kayıt her zaman birth_date gerektirir

Örnek keşfini al

GET /.well-known/tebhos

Örnek keşif nesnesini döndürür. Kimlik doğrulama gerekmez. Yanıtta Cache-Control: no-cache bulunur; bu yüzden istemci her başlangıçta yanıtı yeniden doğrular. Web uygulaması yeni bir kurulumu fark etmek için version değerini kullanır.

Yol v1 tabanının altındadır: https://tebhos.com/api/v1/.well-known/tebhos.

Yanıt

Durum Gövde Koşul
200 örnek keşif nesnesi Keşif belgesi döndürüldü
429 hata yanıtı Yol kovası isteği reddetti

Hız sınırı

instance:info kovasında, her istemci için dakikada 60 istek. İstemci Authorization başlığıyla, başlık göndermiyorsa IP adresiyle tanımlanır.

Örnek

curl https://tebhos.com/api/v1/.well-known/tebhos

TEBHOS'ta desteklenmez

TEBHOS istemci konum belirleme yolu ve OpenAPI belgesi sunmaz. Bir kurulumun makine tarafından okunabilir tanımı olarak yukarıdaki keşif belgesini kullanın.