Geçerli kullanıcı¶
Geçerli kullanıcı, kimlik bilgisini sunan hesaptır ve bir kullanıcı nesnesiyle temsil edilir. Buradaki yollar bu hesabı okur, değiştirir ve yaşam döngüsü işlemlerini yürütür.
Bu sayfadaki Geçerli kullanıcıyı getir dışındaki her yol bir kullanıcı oturumu (Authorization: Bearer <token>) gerektirir. Geçerli bir bot token'ı veya geçerli bir OAuth2 erişim token'ı 403 ACCESS_DENIED ile reddedilir.
| Yol | Amaç |
|---|---|
GET /users/@me |
Geçerli kullanıcıyı getir |
PATCH /users/@me |
Geçerli kullanıcıyı değiştir |
POST /users/@me/avatar/upload-url, POST /users/@me/avatar/confirm |
Avatarı değiştir |
POST /users/@me/banner/upload-url, POST /users/@me/banner/confirm |
Afişi değiştir |
DELETE /users/@me/authorized-ips |
Yetkili IP'leri unut |
POST /auth/account/disable |
Geçerli hesabı devre dışı bırak |
POST /auth/account/delete |
Geçerli hesabın silinmesini zamanla |
POST /users/@me/terms-acceptance |
Güncel politikaları kabul et |
Sudo doğrulaması¶
Güvenlik açısından hassas değişiklikler (kullanıcı adı, yaşam döngüsü işlemleri, yetkili IP'leri unutma ve birkaç MFA yolu) istek gövdesinde kimlik kanıtı gerektirir. Her yerde aynı üç isteğe bağlı alan kabul edilir:
| Alan | Tür | Açıklama |
|---|---|---|
| password? | string | Mevcut parola. Yalnızca hesapta TOTP doğrulayıcısı ve kayıtlı geçiş anahtarı (passkey) yoksa kabul edilir |
| mfa_code? | string | Geçerli bir TOTP kodu veya kullanılmamış bir yedek kod. Boşluklar yok sayılır |
| sudo_proof? | string | Başarılı bir geçiş anahtarı doğrulamasından sonra verilen tek kullanımlık kanıt. Bkz. MFA |
sudo_proof, mfa_code, password sırasındaki ilk boş olmayan alan denetlenir.
| Hesap durumu | Kabul edilen kanıt |
|---|---|
| TOTP doğrulayıcısı ve geçiş anahtarı yok | password, mfa_code veya sudo_proof |
| Bir TOTP doğrulayıcısı veya en az bir geçiş anahtarı var | Yalnızca mfa_code veya sudo_proof; tek başına password reddedilir |
Kabul edilen bir kanıt içermeyen istek 403 ile başarısız olur:
Yanlış bir parola veya kod 401 UNAUTHORIZED ile başarısız olur. Parola denemeleri hesap başına 5 dakikada 10 ile (kova auth:sudo_pwd), kod denemeleri ise 15 dakikada 10 ile (kova auth:sudo_mfa) sınırlıdır.
Sudo yetkileri
Aynı kanıt alanlarıyla yapılan POST /auth/sudo, isteği yapan oturuma bağlı 5 dakikalık bir sudo penceresi verir ve {"granted_at", "expires_at"} döndürür. DELETE /auth/sudo bu yetkiyi iptal eder. Diğer sayfalardaki bazı yollar gövde alanları yerine bu yetkiyi denetler; örneğin kendi mesajlarınızı toplu silme ve kanıt alanı gönderilmediğinde uygulama yönetimi. GET /auth/sudo/mfa-methods, istemcinin hangi kanıtı isteyeceğini bilmesi için {"totp", "webauthn", "has_mfa"} döndürür. Bkz. MFA.
Geçerli kullanıcıyı getir¶
GET /users/@me
Geçerli kullanıcı nesnesini döndürür. Bu sayfada bot token'ını (Authorization: Bot <token>) da kabul eden tek yol budur; bir bot bot: true ile kendi kullanıcı nesnesini alır.
identify kapsamlı bir OAuth2 erişim token'ını da kabul eder.
Erişim token'ı yanıtı¶
OAuth2 erişim token'ıyla yanıt aynı kullanıcı nesnesidir; özel alanlar nötr değerlerle değiştirilir:
| Alan | Değer |
|---|---|
Adres yalnızca token ayrıca email kapsamını taşıyorsa döner; aksi halde null |
|
| email_bounced, authenticator_types | Yer almaz |
| acls, traits, required_actions | [] |
| mfa_enabled, nsfw_allowed, premium_will_cancel, premium_badge_hidden, premium_badge_masked, premium_badge_timestamp_hidden, premium_badge_sequence_hidden, premium_purchase_disabled, premium_enabled_override, premium_perks_disabled, has_dismissed_premium_onboarding, has_ever_purchased, has_unread_gift_inventory | false |
| password_last_changed_at, premium_since, premium_until, premium_billing_cycle, premium_lifetime_sequence, pending_bulk_message_deletion | null |
| unread_gift_inventory_count | 0 |
Diğer tüm alanlar bir oturumda olduğu gibi döner.
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | kullanıcı nesnesi | Hesap döndürüldü |
| 401 | hata | Kimlik bilgisi eksik veya geçersiz |
| 403 | hata | identify kapsamı olmayan bir OAuth2 erişim token'ı (MISSING_OAUTH_SCOPE) |
Hız sınırı¶
Kullanıcı başına 10 saniyede 40 istek, kova user:settings:get; Geçerli kullanıcı ayarlarını getir ile paylaşılır.
Geçerli kullanıcıyı değiştir¶
PATCH /users/@me
Geçerli hesabı değiştirir ve sonuçtaki kullanıcı nesnesini döndürür. Her alan isteğe bağlıdır; gönderilmeyen alan değiştirilmeden bırakılır. Hiçbir şeyi değiştirmeyen bir gövde hata değildir ve geçerli kullanıcıyı döndürür.
Gövde üç adımda işlenir ve önceki bir adımdaki hata isteği durdurur: önce hesap alanları doğrulanır, sonra kullanıcı adı değişikliği çalışır, ardından profil alanları yazılır ve son olarak hesap alanları saklanır.
JSON gövdesi¶
Kullanıcı adı (sudo doğrulaması gerektirir)
| Alan | Tür | Açıklama |
|---|---|---|
| username? | string | Yeni kullanıcı adı. Küçük harfe çevrilir; a-z, 0-9, _ ve - karakterlerinden oluşan 3-32 karakter. Başka bir hesabın kullandığı kullanıcı adı 409 CONFLICT döndürür |
| password? / mfa_code? / sudo_proof? | string | Sudo doğrulaması kanıtı. Yalnızca username varsa okunur |
Profil
| Alan | Tür | Açıklama |
|---|---|---|
| global_name? | ?string | Görünen ad, 2-32 karakter; temizlemek için null. name takma ad olarak kabul edilir ve ikisi birlikte gönderilirse o geçerli olur |
| bio? | ?string | Biyografi, en fazla 4000 karakter. Null veya "" onu temizler |
| pronouns? | ?string | Hitap zamirleri, en fazla 40 karakter. Null veya "" onları temizler |
| accent_color? | ?integer | Paketlenmiş 24 bitlik RGB olarak vurgu rengi; temizlemek için null |
| timezone? | string | IANA saat dilimi tanımlayıcısı (en fazla 128 karakter), kırpılır. "" onu temizler. Bilinmeyen bir tanımlayıcı 400 INVALID_FORM_BODY (INVALID_TIMEZONE_IDENTIFIER) döndürür |
| timezone_privacy_flags? | integer | Saat dilimi için profil alanı gizlilik bayrakları. Bu alan olmadan ilk kez bir saat dilimi ayarlamak onu EVERYONE yapar |
| custom_status? | string | Özel durum metni, en fazla 100 karakter. "" metni, emojiyi ve bitiş zamanını birlikte temizler |
| custom_status_emoji_id? | string | Özel durum emojisi: bir özel emoji kimliği veya bir Unicode emoji (en fazla 100 karakter) |
| custom_status_expires_at? | ISO8601 zaman damgası | Özel durumun sona erdiği zaman |
| image_url? | string | Yalnızca "" anlamlıdır: avatarı kaldırır. Yeni bir avatarı Avatarı değiştir ile yükleyin |
| banner_color? | string | #RRGGBB biçiminde profil afişi rengi (tam olarak 7 karakter) |
| banner_type? | string | Afiş görüntüleme türü (en fazla 20 karakter), örneğin color veya image |
| banner_image_url? | string | Afiş görseli URL'si (en fazla 512 karakter); "" onu temizler. Yeni bir afişi Afişi değiştir ile yükleyin |
| active_frame_url? | string | Gösterilecek avatar çerçevesi (en fazla 512 karakter); "" onu kaldırır |
| active_badge_url? | string | Gösterilecek Premium rozeti; "" onu kaldırır. Hesap, rozetin kademesi için yeterince uzun süredir TEBHOS Pro'ya sahip olmalıdır; aksi hâlde 403 |
| active_badge_name? | string | Seçilen Premium rozetinin adı |
| boost_badge_url? | string | Gösterilecek takviyeci rozeti; "" onu kaldırır. Rozetin kademesi için yeterli sayıda gün kesintisiz sunucu takviyesi gerektirir, aksi hâlde 403; bilinmeyen bir rozet 400 döndürür |
| boost_badge_name? | string | Seçilen takviyeci rozetinin adı |
Hesap
| Alan | Tür | Açıklama |
|---|---|---|
| mention_flags? | integer | Yanıt bahsetme tercihi: 0, 1 veya 2. Başka herhangi bir değer 400 döndürür |
| premium_badge_hidden? | boolean | Premium rozetini herkese açık profilden gizler |
| premium_badge_masked? | boolean | Ömür boyu rozetini sıradan bir abonelik rozeti olarak gösterir |
| premium_badge_timestamp_hidden? | boolean | Premium başlangıç tarihini gizler |
| premium_badge_sequence_hidden? | boolean | Ömür boyu sıra numarasını gizler |
| premium_enabled_override? | boolean | Yalnızca ekip. Diğer hesaplar 403 MISSING_ACCESS alır |
| has_dismissed_premium_onboarding? | boolean | Yalnızca true etkilidir: kapatma zamanını kaydeder |
| has_unread_gift_inventory? | boolean | Yalnızca false etkilidir: hediye envanterini okundu olarak işaretler |
Burada kabul edilmez
E-posta ve parola değişiklikleri E-posta ve parola sayfasındaki kod tabanlı akışları kullanır. Avatarlar ve afişler aşağıdaki yükleme yollarını kullanır. discriminator ve date_of_birth değiştirilemez.
Sınırlar¶
| Değişiklik | Hak | Hata |
|---|---|---|
| Profil alanı içeren herhangi bir istek | Kullanıcı başına 60 saniyede 20 (kova user:update) |
429 |
| Kullanıcı adı | Kullanıcı başına 3 saatte 5 (kova username_change); sudo doğrulamasından sonra sayılır |
429 |
| Biyografiyi farklı bir değere değiştirme | 30 dakikada 25 | 400 INVALID_FORM_BODY, bio üzerinde BIO_CHANGED_TOO_MANY_TIMES |
| Hitap zamirlerini farklı bir değere değiştirme | 30 dakikada 25 | 400 INVALID_FORM_BODY, pronouns üzerinde PRONOUNS_CHANGED_TOO_MANY_TIMES |
| Vurgu rengini farklı bir değere değiştirme | 30 dakikada 25 | 400 INVALID_FORM_BODY, accent_color üzerinde ACCENT_COLOR_CHANGED_TOO_MANY_TIMES |
Bir alanın zaten sahip olduğu değeri kaydetmek alan başına haklardan düşülmez.
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | kullanıcı nesnesi | Değişiklikler uygulandı |
| 400 | hata | Bir alan doğrulamadan geçemedi |
| 401 | hata | Yanlış sudo parolası veya kodu |
| 403 | hata | Sudo kanıtı eksik (SUDO_MODE_REQUIRED), yalnızca ekibe açık alan veya rozetin kilidi açılmamış |
| 409 | hata CONFLICT |
Kullanıcı adı alınmış |
| 429 | hata | Hız sınırına takıldı |
Yan etkiler¶
Hesabın kendi oturumları, üst düzeyde özel kullanıcı nesnesini içeren USER_UPDATE alır. Sunucu üyeleri ve arkadaşlar da profil değişikliğini alır; Gateway, önbellekteki üye verisi değişen sunucular için GUILD_MEMBER_UPDATE türetir. Bkz. Gateway olayları.
curl -X PATCH https://tebhos.com/api/v1/users/@me \
-H "Authorization: Bearer $TEBHOS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"global_name": "Aria", "pronouns": "she/her", "mention_flags": 2}'
Avatarı değiştir¶
Avatarlar önceden imzalanmış bir URL ile doğrudan depolamaya yüklenir, ardından onaylanır.
Avatar yükleme URL'si oluştur¶
POST /users/@me/avatar/upload-url
| Alan | Tür | Açıklama |
|---|---|---|
| filename | string | Özgün dosya adı; boş olmamalıdır |
| content_type | string | image/png, image/jpeg, image/jpg, image/gif veya image/webp |
| size | integer | Bayt cinsinden dosya boyutu, 1 ile 8388608 (8 MiB) arası |
Döndürür:
| Alan | Tür | Açıklama |
|---|---|---|
| upload_url | string | Önceden imzalanmış URL. Dosyayı PUT ile ve aynı Content-Type ile gönderin |
| storage_key | string | Onaylama yoluna iletilecek anahtar |
| url | string | Yüklemenin geçici herkese açık URL'si |
| expires_in | integer | Yükleme URL'sinin geçerli kaldığı saniye (300) |
Avatarı onayla¶
POST /users/@me/avatar/confirm
| Alan | Tür | Açıklama |
|---|---|---|
| storage_key | string | Önceki adımdan gelen storage_key. Hesabınıza ait olmalıdır |
TEBHOS görsel meta verilerini (EXIF, GPS ve benzerleri) temizler, dosyayı içerik hash'i altında saklar ve {"avatar_hash", "image_url"} döndürür. Hareketli bir avatar (baytlardan algılanan GIF, APNG veya hareketli WebP) TEBHOS Pro gerektirir; aksi hâlde 403 ile başarısız olur. Avatar değişiklikleri 30 dakikada 25 ile sınırlıdır (400 INVALID_FORM_BODY, AVATAR_CHANGED_TOO_MANY_TIMES). Başarılı bir değişiklik USER_UPDATE yayınlar.
Avatarı kaldırmak için Geçerli kullanıcıyı değiştir yoluna {"image_url": ""} gönderin.
Genel yükleme akışı için bkz. Yüklemeler.
Afişi değiştir¶
POST /users/@me/banner/upload-url ve POST /users/@me/banner/confirm
Gövdeler, sınırlar ve akış Avatarı değiştir ile aynıdır. Onaylama yolu {"banner_hash", "banner_image_url"} döndürür. Hareketli bir afiş TEBHOS Pro gerektirir. Afiş değişiklikleri 30 dakikada 25 ile sınırlıdır (BANNER_CHANGED_TOO_MANY_TIMES). Afiş hash'i kullanıcı nesnesinde yalnızca hesap Premium'a sahip olduğu sürece görünür.
Yetkili IP'leri unut¶
DELETE /users/@me/authorized-ips
Hesabın tüm yetkili IP kayıtlarını siler; böylece herhangi bir adresten yapılan bir sonraki giriş yeni bir IP yetkilendirmesi gerektirir. Sudo doğrulaması gerektirir; gövde kanıt alanlarını taşır.
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 204 | boş | Kayıtlar temizlendi |
| 403 | hata SUDO_MODE_REQUIRED |
Kabul edilen kanıt yok |
Hız sınırı¶
Kullanıcı başına 60 saniyede 10 istek, kova user:authorized_ips:forget.
Geçerli hesabı devre dışı bırak¶
POST /auth/account/disable
Hesabı, verilerini koruyarak devre dışı bırakır ve isteği yapan oturum dahil sahip olduğu her oturumu sonlandırır. Yeniden giriş yapmak hesabı yeniden etkinleştirir. Sudo doğrulaması gerektirir.
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 204 | boş | Hesap devre dışı bırakıldı |
| 401 | hata | Yanlış parola veya kod |
| 403 | hata SUDO_MODE_REQUIRED |
Kabul edilen kanıt yok |
Hız sınırı¶
Kullanıcı başına saatte 5 istek, kova user:account:disable.
Geçerli hesabın silinmesini zamanla¶
POST /auth/account/delete
Hesabı şu andan 14 gün sonra silinecek şekilde zamanlar ve her oturumu sonlandırır. Son tarihten önce giriş yapmak silmeyi iptal eder. Sudo doğrulaması gerektirir.
Önce sunucu sahipliğini devredin
Bir sunucunun sahibi olan hesap silinemez; istek 400 BAD_REQUEST ile başarısız olur. Önce sahip olunan her sunucuyu devredin veya silin.
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 204 | boş | Silme zamanlandı |
| 400 | hata | Hesap en az bir sunucunun sahibi |
| 403 | hata SUDO_MODE_REQUIRED |
Kabul edilen kanıt yok |
Hız sınırı¶
Kullanıcı başına saatte 5 istek, kova user:account:delete.
curl -X POST https://tebhos.com/api/v1/auth/account/delete \
-H "Authorization: Bearer $TEBHOS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mfa_code": "123456"}'
Güncel politikaları kabul et¶
POST /users/@me/terms-acceptance
terms_agreed_at ve privacy_agreed_at değerlerini istek zamanına ayarlayarak güncel hizmet şartlarının ve gizlilik politikasının kabul edildiğini kaydeder. Gövde yok sayılır. Güncellenmiş kullanıcı nesnesini döndürür ve hesabın oturumlarına USER_UPDATE yayınlar. Çağrıyı tekrarlamak iki zaman damgasını da yeniler.
Hız sınırı¶
Kullanıcı başına 60 saniyede 20 istek, kova user:update.
Eski profil okumaları¶
TEBHOS web istemcisi ayrıca iki eski, düz profil okuması kullanır. Yeni entegrasyonlar Geçerli kullanıcıyı getir yolunu tercih etmelidir.
| Yol | Döndürdüğü |
|---|---|
GET /auth/me |
Geçerli hesabın düz bir TEBHOS profil kaydı (profil özelleştirmesi, MFA zaman damgaları, Premium özeti) |
GET /me |
email dahil, bir profil nesnesi olarak geçerli hesap |