Sunucu kanalları¶
Bir sunucu kanallara bölünür ve kategoriler bu kanalları gruplar. Bu sayfadaki yollar bir sunucunun kanallarını listeler, kanal ve kategori oluşturur ve bunların sırasını ve üst öğesini değiştirir. Kanal nesnesi ve kanal veya kategori değiştirme ve silme ile izin geçersiz kılmalarını ayarlama dahil kanal başına her işlem Kanallar sayfasında tanımlanır.
Tüm yollar https://tebhos.com/api/v1 adresine görelidir, kimlik doğrulama gerektirir ve hem kullanıcı oturumlarını hem de bot token'larını kabul eder; yalnızca kullanıcı olarak işaretlenmiş yollar bunun dışındadır (bu durumda geçerli bir bot token'ı 403 ACCESS_DENIED ile reddedilir). Sunucunun üyesi olmayan bir çağıran 403 FORBIDDEN alır. Hata gövdeleri Hatalar sayfasındaki biçime uyar.
Sunucu kanalı türleri¶
Bunlar bir sunucunun içinde bulunan kanal türleri ve Sunucu kanalı oluştur isteğinin type alanında kabul ettiği değerlerdir.
| Değer | Ad | Açıklama |
|---|---|---|
| 0 | GUILD_TEXT | Mesajları ve yavaş modu olan metin kanalı |
| 2 | GUILD_VOICE | Ses oturumları, ekran paylaşımı ve metin sohbeti olan ses kanalı |
| 4 | GUILD_CATEGORY | Diğer kanalları gruplayan kategori |
| 998 | GUILD_LINK | Tek içeriği harici bir http/https URL'si olan kanal |
Kategori, türü 4 olan bir kanal satırıdır. Adı, konumu ve izin geçersiz kılmaları vardır; diğer kanallar ona parent_id ile işaret eder. Kategoriler iç içe olamaz.
İzin geçersiz kılma oluşturma nesnesi¶
Bir kanalın oluşturulurken alabileceği ilk geçersiz kılmalar. Saklanan biçim izin geçersiz kılma nesnesidir.
| Alan | Tür | Açıklama |
|---|---|---|
| id | snowflake | Geçersiz kılmanın hedeflediği rol kimliği (tür 0) veya kullanıcı kimliği (tür 1). @everyone rolünün kimliği sunucunun kimliğidir |
| type | integer | Rol için 0, üye için 1. Başka herhangi bir değer 400 BAD_REQUEST döndürür |
| allow? | string veya integer | Verilecek izin bitleri; ondalık bir dize veya negatif olmayan bir JSON tamsayısı olarak (varsayılan 0) |
| deny? | string veya integer | Kaldırılacak izin bitleri (varsayılan 0) |
Aynı bitin hem allow hem de deny içinde bulunması 400 BAD_REQUEST döndürür. Tanımlı hiçbir izni adlandırmayan bitler atılır.
Kanal konumu nesnesi¶
Sunucu kanalı konumlarını değiştir isteğinin bir girdisi.
| Alan | Tür | Açıklama |
|---|---|---|
| id | snowflake | Taşınacak kanal veya kategori |
| position? | integer | Hedefteki kardeşler arasındaki sıra; geçerli aralığa sınırlanır. preceding_sibling_id varsa yok sayılır |
| parent_id? | ?snowflake | Yeni üst kategori; kanalı en üst düzeye taşımak için null. Mevcut üst öğeyi korumak için göndermeyin |
| preceding_sibling_id? | ?snowflake | Kanalın hemen arkasına yerleştirileceği kardeş; en başa yerleştirmek için null |
| lock_permissions? | boolean | Girdi kanalı farklı bir kategoriye taşıdığında, kanalın geçersiz kılmalarını kategorininkilerle değiştirir (varsayılan false) |
Kardeşler kova başına sayılır: kategoriler diğer kategoriler arasında, diğer her kanal ise aynı üst öğeye sahip kanallar arasında (veya en üst düzey kanallar arasında) sıralanır. Bir girdide ne position ne de preceding_sibling_id varsa, ses kanalı en sona, diğer kanallar ise ilk ses kardeşinin hemen önüne yerleştirilir.
{
"id": "1501314428688998182",
"parent_id": "1501314428688998100",
"preceding_sibling_id": null,
"lock_permissions": true
}
Sunucu kanallarını listele¶
GET /guilds/{guild_id}/channels
Sunucu için position ve ardından kimliğe göre sıralanmış bir kanal nesneleri dizisi döndürür. Bir kanal veya kategori yalnızca çağıran onda VIEW_CHANNEL iznine sahipse dahil edilir. Üyelik gerektirir. Yolun sayfalaması yoktur.
Hız sınırı: guild:channels:list, hesap ve sunucu başına 10 saniyede 60.
curl https://tebhos.com/api/v1/guilds/1489002177550843904/channels \
-H "Authorization: Bot $TEBHOS_BOT_TOKEN"
Kanalları almanın diğer yolları
Ready yükü ve Sunucuyu getir yanıtındaki channels dizisi de sunucunun kanallarını taşır. Sunucuyu getir'deki dizi görünürlüğe göre filtrelenmez.
Sunucu kanalı oluştur¶
POST /guilds/{guild_id}/channels
Bir kanal veya kategori oluşturur ve kanal nesnesini 201 durumuyla döndürür. MANAGE_CHANNELS gerektirir. Sunucu Channel Create alır.
Kategori oluşturmak (type 4) yalnızca kullanıcıya yöneliktir. Diğer türleri oluşturmak bot token'ını da kabul eder.
Hız sınırı: guild:channel:create, hesap ve sunucu başına 60 saniyede 10 (metin, ses ve bağlantı kanalları; kategori oluşturmanın yol kovası yoktur).
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| name | string | Kanal adı, 1-100 karakter. Verildiği gibi saklanır |
| type? | integer | Bir sunucu kanalı türü (varsayılan 0). Başka herhangi bir değer 400 BAD_REQUEST döndürür |
| parent_id? | ?snowflake | Üst kategori. Bu sunucudaki bir kategori olmalıdır; bir kategorinin üst öğesi olamaz |
| topic? | ?string | Kanal konusu |
| url? | ?string | Bağlantı kanalının hedefi: en fazla 2048 karakterlik, bir ana makine içeren ve kullanıcı bilgisi içermeyen bir http veya https URL'si. Başka bir tür için url göndermek 400 BAD_REQUEST döndürür |
| rate_limit_per_user? | ?integer | Saniye cinsinden yavaş mod aralığı (varsayılan 0) |
| bitrate? | ?integer | Saniyede bit cinsinden ses bit hızı. 1000'in altındaki bir değer kbps olarak okunur ve 1000 ile çarpılır. Yalnızca ses kanalı için kullanılır. Aşağıdaki sınırlara bakın |
| user_limit? | ?integer | Ses doluluk sınırı; 0-99 aralığına sınırlanır (varsayılan 0, sınır yok) |
| voice_connection_limit? | ?integer | Bir üyenin kanalda aynı anda sahip olabileceği ses bağlantısı sayısı; 1-100 aralığına sınırlanır. Gönderilmezse saklanan değer null olur ve istemciler 5 kullanır |
| permission_overwrites? | array[izin geçersiz kılma oluşturma nesnesi] | İlk geçersiz kılmaların tamamı |
| nsfw? | boolean | Uyumluluk için kabul edilir ve yok sayılır; TEBHOS'ta yaş kısıtlamalı kanal yoktur |
Kategori için yalnızca name ve permission_overwrites kullanılır.
İzin geçersiz kılmaları. permission_overwrites gönderilmezse bir kategorinin içinde oluşturulan kanal o kategorinin geçersiz kılmalarını kopyalar. Gönderilirse (boş dizi dahil) bu devralmanın yerini tamamen alır. Bu alanı göndermek ayrıca MANAGE_ROLES gerektirir ve bir geçersiz kılmanın izin verdiği her bit, çağıranın üst kategoride (üst öğe yoksa sunucuda) sahip olduğu bir bit olmalıdır; aksi hâlde istek hiçbir şey oluşturulmadan 403 FORBIDDEN ile başarısız olur. Bkz. Rol hiyerarşisi.
Bit hızı. Yeni bir ses kanalının varsayılanı 64000'dir (64 kbps). Kabul edilen en düşük değer 8000'dir (8 kbps). Çağıranın ayarlayabileceği en yüksek bit hızı, kendi hakkı ile sunucunun takviye hakkından büyük olanıdır:
| Kaynak | Üst sınır |
|---|---|
| Pro yok, takviye seviyesi 0 | 96 kbps |
| Çağıranın TEBHOS Pro'su var | 128 kbps |
| Sunucu takviye seviyesi 1'de | 128 kbps |
| Sunucu takviye seviyesi 2'de | 384 kbps |
Daha yüksek bir değer 403 BITRATE_REQUIRES_UPGRADE, üst sınır zaten 384 kbps ise 400 BITRATE_EXCEEDS_LIMIT döndürür.
Konum. Yeni bir kanal, aynı üst öğeye sahip kanallar arasındaki en yüksek konumun arkasına yerleştirilir. Yeni bir kategori son kategorinin arkasına yerleştirilir.
| Durum | Kod | Koşul |
|---|---|---|
| 400 | INVALID_FORM_BODY |
name boş veya 100 karakterden uzun, url geçersiz ya da bit hızı 8 kbps'nin altında |
| 400 | BAD_REQUEST |
Desteklenmeyen type, geçersiz parent_id, kategori için üst öğe, bağlantı kanalı olmayan bir kanalda url veya geçersiz bir geçersiz kılma |
| 400 | BITRATE_EXCEEDS_LIMIT |
Bit hızı 384 kbps'nin üzerinde |
| 403 | FORBIDDEN |
MANAGE_CHANNELS eksik, geçersiz kılmalar MANAGE_ROLES olmadan gönderildi veya çağıranın sahip olmadığı bir biti veriyor |
| 403 | BITRATE_REQUIRES_UPGRADE |
Bit hızı çağıranın üst sınırını aşıyor |
| 403 | ACCESS_DENIED |
Bir bot kategori oluşturmaya çalıştı |
Metin, ses veya bağlantı kanalı oluşturmak bir CHANNEL_CREATE denetim kaydı girdisi kaydeder.
curl -X POST https://tebhos.com/api/v1/guilds/1489002177550843904/channels \
-H "Authorization: Bot $TEBHOS_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "announcements",
"type": 0,
"parent_id": "1501314428688998100",
"permission_overwrites": [
{"id": "1489002177550843904", "type": 0, "deny": "2048"}
]
}'
Sunucu kanalı konumlarını değiştir¶
PATCH /guilds/{guild_id}/channels
Kanalları ve kategorileri taşır ve yeniden sıralar; gövdesiz 204 döndürür. Gövde, kanal konumu nesnelerinden oluşan bir JSON dizisidir. MANAGE_CHANNELS gerektirir.
Hız sınırı: guild:channel:positions, hesap ve sunucu başına 10 saniyede 30.
Girdiler dizi sırasıyla, her biri bir öncekinin sonucuna uygulanır. Hiçbir şey yazılmadan önce isteğin tamamı doğrulanır; bu yüzden geçersiz bir girdi tüm kanalları değiştirmeden bırakır:
| Durum | Kod | Koşul |
|---|---|---|
| 400 | BAD_REQUEST |
Bir kimlik snowflake değil, parent_id bu sunucudaki bir kategori değil, bir kategoriye üst öğe verildi veya preceding_sibling_id hedef kovada değil |
| 403 | FORBIDDEN |
MANAGE_CHANNELS eksik veya lock_permissions çağıranın veremeyeceği geçersiz kılmaları kopyalayacak |
| 404 | NOT_FOUND |
Bir girdinin id değeri bu sunucudaki bir kanal değil |
Etkilenen her kovada konumlar, ortaya çıkan sıraya göre 0'dan başlayarak yeniden numaralandırılır. Bir kategoriyi taşımak yalnızca onun kategoriler arasındaki yerini değiştirir; kanalları üst öğelerini korur. Yalnızca konumu, üst öğesi veya geçersiz kılmaları gerçekten değişen satırlar yazılır.
lock_permissions yalnızca girdi kanalı farklı bir kategoriye taşıdığında etkili olur. Kategorinin geçersiz kılmalarını kanala kopyalar ve taşınan kanalda MANAGE_ROLES gerektirir; kopyanın izin verdiği her bit ve reddetmeyi bıraktığı her bit, çağıranın orada sahip olduğu bir bit olmalıdır.
En az bir kanal değiştiğinde sunucu, değişiklikten sonra saklandığı hâliyle sunucunun kanallarını taşıyan tek bir Channel Update Bulk olayı alır. İşlem hiçbir denetim kaydı girdisi kaydetmez.
curl -X PATCH https://tebhos.com/api/v1/guilds/1489002177550843904/channels \
-H "Authorization: Bot $TEBHOS_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '[{"id": "1501314428688998182", "parent_id": "1501314428688998100", "preceding_sibling_id": null}]'
Kategoriler¶
Kategori, Sunucu kanalı oluştur ile type 4 kullanılarak oluşturulur ve Sunucu kanalı konumlarını değiştir ile taşınır. Bir kategoriyi yeniden adlandırmak, geçersiz kılmalarını değiştirmek ve silmek kanal yollarını kullanır: Kanalı değiştir, Kanal izin geçersiz kılmasını ayarla ve Kanalı sil. Kanal izinlerini kategoriyle eşitle, bir kategorinin geçersiz kılmalarını kanallarından birine kopyalar.