Ana içeriğe geç

Sunucu üyesi arama

Üye arama, bir sunucunun üyelerini ada, role, katılma zamanına ve hesap türüne göre filtreler, sıralar ve sayfalar. Sunucu ayarlarındaki Üyeler sayfası bu özelliği kullanır. Her eşleşme bir sunucu üyesi arama sonucudur.

Yol 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. Hata gövdeleri Hatalar sayfasındaki biçime uyar.

Sonuçlar her zaman üyelik kayıtlarından gelir

Filtreleme, sıralama ve sayfalama sunucunun saklanan üyelikleri üzerinde çalışır; bu yüzden sonuçlar günceldir. İstekte metin içeren bir query varsa TEBHOS alaka sırası için arama motoruna başvurur; motor kullanılamıyorsa aynı kayıtlar üzerinde alt dize eşleştirmesine geri döner. indexing her zaman false olur.

Katılma kaynağı türleri

Arama sonucu ve join_source_type filtresi bu değerleri kullanır.

Değer Ad Açıklama
0 CREATOR Üye sunucuyu oluşturdu
1 INSTANT_INVITE Üye bir davetle katıldı
2 VANITY_URL Üye özel davet koduyla katıldı
3 BOT_INVITE Hesap bir bot yetkilendirmesiyle eklendi
4 ADMIN_FORCE_ADD Üyeyi bir örnek (instance) yöneticisi ekledi
6 DISCOVERY Üye keşif üzerinden katıldı

Katılma kaynağı henüz kaydedilmiyor

TEBHOS şu an bir üyelik oluşturulurken katılma kaynağı türünü kaydetmez; bu yüzden supplemental.join_source_type her zaman null olur. Dolayısıyla MANAGE_GUILD sahibi bir çağıranın gönderdiği join_source_type filtresi hiçbir üyeyle eşleşmez. Davetle katılan üyeler için source_invite_code kaydedilir.

Sunucu üyesi arama sonucu nesnesi

Eşleşen bir üyelik. Hesap alanları user altında değil, en üst düzeydedir.

Alan Tür Açıklama
id string Sonuç kimliği, {guild_id}:{user_id}. Başka hiçbir yol bunu kabul etmez
guild_id snowflake Sunucunun kimliği
user_id snowflake Üyenin hesabının kimliği
username string Hesabın kullanıcı adı (ayarlanmamışsa boş)
discriminator string Hesabın ayırıcısı, soldan dört haneye tamamlanmış
global_name ?string Hesabın görünen adı
nickname ?string Üyenin bu sunucudaki takma adı
role_ids array[snowflake] Üyenin rol kimlikleri, artan sırada. @everyone asla dahil edilmez
joined_at integer Hesabın sunucuya katıldığı zaman, Unix saniyesi olarak
supplemental ek bilgi nesnesi Katılma meta verisi
is_bot boolean Hesabın bot olup olmadığı
{
  "id": "1489002177550843904:1489002177550843906",
  "guild_id": "1489002177550843904",
  "user_id": "1489002177550843906",
  "username": "ada",
  "discriminator": "0042",
  "global_name": "Ada",
  "nickname": null,
  "role_ids": ["1489002177550843910"],
  "joined_at": 1755158400,
  "supplemental": {"join_source_type": null, "source_invite_code": "a1b2c3d4", "inviter_id": "1489002177550843905"},
  "is_bot": false
}

Sonuçta avatar, zaman aşımı veya ses alanları yoktur. Üyeliğin tamamı için Sunucu üyesini al kullanılır.

Sunucu üyesi arama ek bilgi nesnesi

Alan Tür Açıklama
join_source_type ?integer Katılma kaynağı türü. Şu an her zaman null
source_invite_code ?string Üyenin katılırken kullandığı davet kodu
inviter_id ?snowflake O daveti oluşturan hesap

Çağıran sunucu sahibi değilse veya MANAGE_GUILD (ya da ADMINISTRATOR) iznine sahip değilse her alan null olur. Bu nedenle null bir değer, verinin var olup olmadığını göstermez.

Sunucu üyesi arama yanıt nesnesi

Alan Tür Açıklama
guild_id snowflake Sunucunun kimliği
members array[sunucu üyesi arama sonucu nesnesi] İstenen sayfa
page_result_count integer members içindeki sonuç sayısı
total_result_count integer Filtrelerle eşleşen toplam üye sayısı
indexing boolean Her zaman false

Sunucu üyelerini ara

POST /guilds/{guild_id}/members-search

Bir sunucu üyesi arama yanıtı döndürür. Çağıran üye olmalı; ayrıca sahip olmalı ya da MANAGE_GUILD, MANAGE_ROLES, MANAGE_NICKNAMES, BAN_MEMBERS, MODERATE_MEMBERS, KICK_MEMBERS veya ADMINISTRATOR izinlerinden en az birine sahip olmalıdır.

Hız sınırı: guild:members, hesap ve sunucu başına 10 saniyede 40 (üye okumaları ve Sunucu yasaklamalarını listele ile paylaşılır).

JSON gövdesi

Her alan isteğe bağlıdır; boş bir {} nesnesi tüm üyelerin ilk sayfasını döndürür.

Alan Tür Açıklama
query? string Eşleştirilecek metin (en fazla 100 karakter). Kırpılır; boş bir değer metin filtresi uygulamaz
limit? integer Sayfa boyutu, 1-100 (varsayılan 25)
offset? integer Atlanacak eşleşme sayısı, en az 0 (varsayılan 0)
role_ids? array[snowflake] Üyenin hepsine sahip olması gereken roller (en fazla 10)
joined_at_gte? integer Unix saniyesi; bu zamanda veya sonrasında katılan üyeler
joined_at_lte? integer Unix saniyesi; bu zamanda veya öncesinde katılan üyeler
join_source_type? array[integer] Dahil edilecek katılma kaynağı türleri (en fazla 10). Yalnız MANAGE_GUILD sahibi çağıranlar için uygulanır
source_invite_code? array[string] Dahil edilecek davet kodları (en fazla 10). Yalnız MANAGE_GUILD sahibi çağıranlar için uygulanır
is_bot? boolean true yalnız bot hesapları, false yalnız bot olmayan hesaplar için
user_created_at_gte? integer Unix saniyesi; bu zamanda veya sonrasında oluşturulan hesaplar (kullanıcı kimliğinden türetilir)
user_created_at_lte? integer Unix saniyesi; bu zamanda veya öncesinde oluşturulan hesaplar
sort_by? string joinedAt veya relevance
sort_order? string asc veya desc

Metin eşleştirme. Arama motoru olmadan query; üyenin takma adı, görünen adı veya kullanıcı adıyla eşleşir (büyük/küçük harfe duyarsız: önce tam eşleşme, sonra önek, sonra alt dize) ya da kullanıcı kimliğine birebir eşittir. Motor varken hangi üyelerin hangi sırayla eşleşeceğine motor karar verir; yukarıdaki filtreler motorun eşleşmelerine yine uygulanır.

Sıralama. query verilip sort_by verilmediğinde ya da sort_by değeri relevance olduğunda sonuçlar önce alakaya, ardından katılma zamanına göre sıralanır. Aksi halde katılma zamanına göre en eskiden başlayarak ya da sort_order desc ile en yeniden başlayarak sıralanır. Eşitlikler kullanıcı kimliğiyle çözülür.

Durum Kod Koşul
400 BAD_REQUEST Bir değer aralık dışında, bir listede 10'dan fazla öğe var, bir rol kimliği snowflake değil ya da sort_by/sort_order kabul edilen bir değer değil
403 FORBIDDEN Çağıran üye değil
403 MISSING_PERMISSIONS Çağıran gerekli izinlerin hiçbirine sahip değil
curl -X POST https://tebhos.com/api/v1/guilds/1489002177550843904/members-search \
  -H "Authorization: Bearer $TEBHOS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query": "ada", "role_ids": ["1489002177550843910"], "limit": 50}'