Ana içeriğe geç

Davetler

Davet, bir hesabı bir sunucuya kabul eden bir koddur.

Daveti al, buradaki kimlik bilgisi gerektirmeyen tek yoldur. Bir herkese açık sunucuya davetsiz katılma konusu Keşif sayfasında anlatılır.

Yalnızca sunucu davetleri

TEBHOS'taki her davet bir sunucu davetidir (type 0). Grup doğrudan mesajları için davetler şu anda API tarafından oluşturulmaz.

Davet nesnesi

Daveti al tarafından döndürülen, bir davetin herkese açık gösterimi.

Yapı

Alan Tür Açıklama
code string Daveti tanımlayan kod
type integer Davet türü, her zaman 0
guild kısmi davet sunucusu nesnesi Davetin kabul ettiği sunucu
channel kısmi davet kanalı nesnesi Davetin gösterdiği kanal
inviter ?object Bu gösterimde her zaman null
member_count integer Sunucunun üye sayısı
presence_count integer Yaklaşık çevrimiçi üye sayısı (bilinmediğinde 0)
expires_at ?ISO8601 timestamp Davetin çözümlenmeyi bırakacağı zaman; süresi hiç dolmuyorsa null
temporary boolean Davetin oluşturulurken aldığı geçici bayrağı

channel, davetin kayıtlı kanalıdır. Davetin kanalı yoksa (sunucu genelinde bir davet veya özel davet URL'si), TEBHOS sunucunun sistem kanalını, o da yoksa sunucunun en eski metin kanalını kullanır.

Örnek

{
  "code": "a1b2c3d4",
  "type": 0,
  "guild": {
    "id": "1489002177550843904",
    "name": "Example guild",
    "icon": null,
    "banner": null,
    "embed_splash": null,
    "features": []
  },
  "channel": { "id": "1489002177550843905", "name": "general", "type": 0 },
  "inviter": null,
  "member_count": 412,
  "presence_count": 87,
  "expires_at": null,
  "temporary": false
}

Kısmi davet sunucusu nesnesi

Alan Tür Açıklama
id snowflake Sunucunun kimliği
name string Sunucunun adı
icon ?string Tam URL olarak sunucu simgesi
banner ?string Tam URL olarak sunucu afişi
embed_splash ?string Davet kartlarının kullandığı arka plan görseli (sunucunun gömme arka planı, yoksa afişi)
features array[string] Sunucunun özellikleri, sıralanmış

Kısmi davet kanalı nesnesi

Alan Tür Açıklama
id snowflake Kanalın kimliği
name ?string Kanalın adı
type integer Kanal türü

Davet türleri

Değer Ad Açıklama
0 GUILD Bir hesabı bir sunucuya kabul eden davet

Davet meta veri nesnesi

Bir davetin yönetim gösterimi; Kanal daveti oluştur, Kanal davetlerini listele ve Sunucu davetlerini listele tarafından döndürülür. Alan adları camelCase kullanır.

Yapı

Alan Tür Açıklama
id string code ile aynı
code string Davet kodu
serverId snowflake Sunucunun kimliği
inviterId snowflake Daveti oluşturan hesabın kimliği (bilinmiyorsa boş dize)
inviterName string Oluşturanın görünen adı (bilinmiyorsa boş dize)
inviter ?object Oluşturanın {id, name, imageUrl} bilgisi veya null
maxUses ?integer En fazla kullanım sayısı; sınırsız için null
uses integer Davetin kabul edilme sayısı
expiresAt ?ISO8601 timestamp Davetin süresinin dolacağı zaman; hiç dolmuyorsa null
createdAt ISO8601 timestamp Davetin oluşturulma zamanı
channelId ?snowflake Davetin gösterdiği kanal; sunucu genelinde bir davet için null
channel ?object O kanalın {id, name, type} bilgisi (type, "TEXT" gibi bir etikettir) veya null

Örnek

{
  "id": "a1b2c3d4",
  "code": "a1b2c3d4",
  "serverId": "1489002177550843904",
  "inviterId": "1501314428688998182",
  "inviterName": "Example",
  "inviter": { "id": "1501314428688998182", "name": "Example", "imageUrl": "" },
  "maxUses": 25,
  "uses": 3,
  "expiresAt": "2026-08-05T11:22:19+00:00",
  "createdAt": "2026-08-04T11:22:19+00:00",
  "channelId": "1489002177550843905",
  "channel": { "id": "1489002177550843905", "name": "general", "type": "TEXT" }
}

Özel davet URL'leri

Bir sunucunun kalıcı bir özel davet kodu (vanity kodu) olabilir. Daveti al ve Daveti kabul et, o koda sahip normal bir davet yoksa bu kodu çözümler. Özel davet URL'sinin süresi hiç dolmaz, temporary değeri false'tur ve davet listelerinde yer almaz.

Daveti al

GET /invites/{invite_code}

Tek bir daveti çözümler ve bir davet nesnesi döndürür. Kimlik doğrulama gerekmez ve okuma hiçbir zaman bir kullanım hakkı tüketmez.

Süresi dolmuş bir davet çözümlenmez.

Yanıt

Durum Gövde Koşul
200 davet nesnesi Davet çözümlendi
404 hata yanıtı Bu koda sahip bir davet veya özel davet URL'si yok ya da sunucu artık mevcut değil (NOT_FOUND)

Hız sınırı

invite:read kovasında istemci ve davet kodu başına 10 saniyede 100 istek. Authorization başlığı varsa istemci oturumdur, yoksa IP adresidir.

Örnek

curl "https://tebhos.com/api/v1/invites/a1b2c3d4"

Daveti kabul et

POST /invites/{invite_code}

Bir daveti kabul eder ve kimliği doğrulanmış hesabı davetin sunucusuna ekler. Yalnızca kullanıcılara açıktır: bot token'ı 403 ACCESS_DENIED ile reddedilir. Çağıranın herhangi bir izne ihtiyacı yoktur.

Yanıt

Başarılı olduğunda yol, küçük bir durum nesnesiyle 200 döndürür:

{ "server_id": "1489002177550843904", "joined": true }

Hesap zaten üyeyse {"server_id": "...", "already_member": true} ile 200 döndürür ve hiçbir üyelik olayı gönderilmez.

Durum Gövde Koşul
200 durum nesnesi Hesap katıldı veya zaten üyeydi
403 hata yanıtı Çağıran bir bot (ACCESS_DENIED)
403 hata yanıtı Sunucu davetleri duraklatmış (INVITES_DISABLED özelliği) veya çağıran sunucudan yasaklanmış (FORBIDDEN)
404 hata yanıtı Kod bilinmiyor veya süresi dolmuş (NOT_FOUND)

Kullanım sınırları

max_uses saklanır ve bildirilir, ancak kabul yolu şu anda uses değeri max_uses değerine ulaşmış bir daveti reddetmez. Bir daveti durdurmak için süre sonu (max_age) kullanın veya daveti silin.

Yan etkiler

Normal bir davette uses, kod çözümlenir çözümlenmez, duraklatma, yasak ve zaten üye olma kontrollerinden önce artırılır. Yeni bir kabul, davet kodunu ve davet edeni üyelik kaydına yazar. Ardından:

  • Sunucuya Guild Member Add gönderilir ve katılan hesabın açık oturumları sunucuya bağlanır.
  • Sunucunun bir sistem kanalı varsa ve katılım mesajları gizlenmemişse, oraya bir USER_JOIN sistem mesajı (tür 7) gönderilir ve Message Create ile iletilir.
  • Hesap yeni sunuculardan gelen DM'leri kısıtlıyorsa, sunucu kısıtlı listesine eklenir.

Hız sınırı

invite:accept kovasında kullanıcı başına 10 saniyede 10 istek (davet koduna göre bölümlenmez).

Örnek

curl -X POST "https://tebhos.com/api/v1/invites/a1b2c3d4" \
  -H "Authorization: Bearer $TOKEN"

Daveti sil

DELETE /invites/{invite_code}

Bir daveti kalıcı olarak siler. {"message": "..."} ile 200 döndürür.

Daveti oluşturan kişi, sunucunun üyesi olduğu sürece kendi davetini silebilir; diğer herkesin MANAGE_GUILD iznine ihtiyacı vardır. Bot token'ları kabul edilir.

Yanıt

Durum Gövde Koşul
200 {"message": string} Davet silindi
403 hata yanıtı Çağıran oluşturan kişi değil ve MANAGE_GUILD iznine sahip değil ya da üye değil (FORBIDDEN)
404 hata yanıtı Bu koda sahip bir davet yok (NOT_FOUND)

Yan etkiler

Sunucu denetim kaydına bir INVITE_DELETE girdisi yazılır ve sunucuya guild_id, code ve channel_id taşıyan bir Invite Delete olayı gönderilir.

Hız sınırı

invite:delete kovasında kullanıcı ve davet kodu başına 10 saniyede 20 istek.

Kanal daveti oluştur

POST /channels/{channel_id}/invites

Bir sunucu kanalı için yeni bir davet oluşturur ve davet meta veri nesnesiyle 201 döndürür. Her çağrı yeni bir davet oluşturur; mevcut davetler hiçbir zaman yeniden kullanılmaz.

Sunucu üyeliği ile o kanalda VIEW_CHANNEL ve CREATE_INSTANT_INVITE izinleri gerekir. Bot token'ları kabul edilir.

JSON gövdesi

Alan Tür Açıklama
max_uses? ?integer En fazla kullanım sayısı; 0 veya belirtilmemesi sınırsız demektir
max_age? ?integer Saniye cinsinden ömür; 0 veya belirtilmemesi davetin süresinin hiç dolmayacağı demektir
temporary? ?boolean Davette saklanan geçici bayrağı (varsayılan false)

Yanıt

Durum Gövde Koşul
201 davet meta verisi nesnesi Davet oluşturuldu
403 hata yanıtı Çağıranın VIEW_CHANNEL veya CREATE_INSTANT_INVITE izni yok (FORBIDDEN)
404 hata yanıtı Kanal mevcut değil, bir sunucu kanalı değil veya çağıran kanalı göremiyor (NOT_FOUND)

Yan etkiler

Yeni kod, rastgele 8 küçük harfli onaltılık karakterden oluşur. Sunucu denetim kaydına bir INVITE_CREATE girdisi yazılır ve sunucuya davetin tamamıyla (code, guild, channel, inviter, uses, max_uses, max_age, created_at gibi referans biçimli alanlar ile guild_id ve channel_id) birlikte Invite Create gönderilir.

Hız sınırı

invite:create kovasında kullanıcı ve kanal başına dakikada 20 istek.

Örnek

curl -X POST "https://tebhos.com/api/v1/channels/1489002177550843905/invites" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"max_age":86400,"max_uses":25}'

Sunucu daveti oluştur

POST /invites/server/{guild_id}

Bir kanala bağlı olmayan, sunucu genelinde bir davet oluşturur. Kanal daveti oluştur ile aynı gövdeyi alır; buna ek olarak daveti o sunucunun tek bir kanalıyla sınırlayan isteğe bağlı bir channel_id kabul eder. channel_id olmadan sunucu düzeyinde CREATE_INSTANT_INVITE izni gerekir; channel_id ile izin o kanalda kontrol edilir. Davet meta veri nesnesiyle 201 döndürür.

Kanal davetlerini listele

GET /channels/{channel_id}/invites

Bir kanalın etkin davetlerini en yeniden eskiye davet meta veri nesneleri dizisi olarak döndürür. Kanala erişim ve sunucuda MANAGE_CHANNELS izni gerekir. Süresi dolmuş davetler dahil edilmez. Özel davet URL'leri dahil edilmez.

Hız sınırı

invite:list kovasında kullanıcı ve kanal başına 10 saniyede 40 istek.

Sunucu davetlerini listele

GET /guilds/{guild_id}/invites

Bir sunucunun tüm kanallarındaki etkin davetleri en yeniden eskiye davet meta veri nesneleri dizisi olarak döndürür. MANAGE_GUILD gerekir. Bot token'ları kabul edilir.

Süresi dolmuş davetler bu liste okunduğunda silinir, bu yüzden hiçbir zaman görünmezler. Yanıt sayfalanmaz. Özel davet URL'leri dahil edilmez.

Aynı liste GET /invites/server/{guild_id} adresinden de alınabilir.

Hız sınırı

invite:list kovasında kullanıcı ve sunucu başına 10 saniyede 40 istek.