Ana içeriğe geç

İlişkiler

İlişki, çağıranın bakış açısından bir arkadaşlığı, engellemeyi veya bekleyen bir arkadaşlık isteğini tanımlar. Özel notlar Kullanıcı notları sayfasına aittir.

Bu sayfadaki tüm yollar yalnızca kullanıcılar içindir. Bir kullanıcı oturum token'ı (Authorization: Bearer <token>) gerektirirler. Geçerli bir Bot <token> kimlik bilgisi 403 ACCESS_DENIED ile, geçersiz olanı ise 401 UNAUTHORIZED ile reddedilir.

İlişki kayıtları yönlüdür

Arkadaşlık, her iki hesapta da bir FRIEND kaydıdır. Bekleyen bir istek gönderende OUTGOING_REQUEST, alıcıda INCOMING_REQUEST olarak bulunur. Engelleme yalnızca onu oluşturan hesapta bulunur; engellenen hesapta bununla ilgili hiçbir kayıt yoktur.

İlişki nesnesi

Bir ilişki kaydı tek bir hesaba aittir ve başka bir hesabı belirtir. Her alan sahip hesabın tarafını tanımlar ve bu sayfadaki her yol çağıranın kendi kaydını döndürür.

Yapı

Alan Tür Açıklama
id snowflake İlişkili hesabın kimliği. İlişkinin kendine ait bir tanımlayıcısı yoktur
type integer İlişki türü
relation_type integer type ile aynı değer; eski istemciler için korunur
user kısmi kullanıcı nesnesi İlişkili hesap; aşağıda açıklanan iki ek üyeyle
since ?ISO8601 timestamp Arkadaşlığın kurulduğu zaman. Yalnızca FRIEND kaydı bir değer taşır; diğer tüm türlerde null olur
nickname ?string Çağırana özel, ilişkili hesap için takma ad; ayarlanmamışsa null
share_voice_activity boolean Çağıranın ses etkinliğini ilişkili hesapla paylaşıp paylaşmadığı

user nesnesi, iki ek üyesi olan sıradan kısmi kullanıcı nesnesidir:

Alan Tür Açıklama
name string Görünen ad: ayarlanmışsa hesabın global_name değeri, aksi hâlde username değeri
image_url string Saklanan avatar URL'si; hesabın avatarı yoksa boş dize

share_voice_activity her yeni kayıtta false olur. Çağıranın FRIEND kayıtlarında yalnızca çağıran, tüm arkadaşlıklarını aynı anda yeniden yazan Ses etkinliği paylaşımını değiştir ile ses etkinliği paylaşımını açtığında true olur.

TEBHOS'ta desteklenmiyor

Kayıtta friend_shares_voice_activity alanı yoktur. Karşı tarafın tercihini onun kendi durum (presence) bilgisinden okuyun.

Örnek

{
  "id": "1501314428688998182",
  "type": 1,
  "relation_type": 1,
  "user": {
    "id": "1501314428688998182",
    "username": "aria",
    "discriminator": "0000",
    "global_name": "Aria",
    "avatar": null,
    "avatar_color": null,
    "flags": 0,
    "name": "Aria",
    "image_url": ""
  },
  "since": "2026-01-14T09:31:00+00:00",
  "nickname": "climbing partner",
  "share_voice_activity": false
}

İlişki türleri

Değer Ad Açıklama
1 FRIEND İki hesap arkadaştır
2 BLOCKED Çağıran, ilişkili hesabı engellemiştir
3 INCOMING_REQUEST İlişkili hesap, çağırana bir arkadaşlık isteği göndermiştir
4 OUTGOING_REQUEST Çağıran, ilişkili hesaba bir arkadaşlık isteği göndermiştir

Toplu yok sayma sonuç nesnesi

Toplu yok sayma sonucu, tek bir çağrının kaç gelen arkadaşlık isteğini kaldırdığını bildirir.

Yapı

Alan Tür Açıklama
ignored_count integer Kaldırılan gelen arkadaşlık isteği sayısı

Toplu yok sayma filtreleri

Değer Ad Açıklama
all Tümü Her gelen arkadaşlık isteğiyle eşleşir
new_accounts Yeni hesaplar Gönderen hesabı max_account_age_seconds değerinden daha genç olan gelen arkadaşlık isteğiyle eşleşir

new_accounts eşleşmeyi yalnızca max_account_age_seconds de verildiğinde daraltır. Bu değer olmadan ve new_accounts dışındaki her değerde çağrı all gibi davranır.

İlişki sınırı

Bir hesap; arkadaşlıklar, engellemeler ve her iki yöndeki bekleyen istekler dahil toplamda en fazla 1000 ilişki kaydı tutabilir. Sınır sabittir ve örnek (instance) tarafından yapılandırılamaz.

TEBHOS, yeni bir arkadaşlık isteği oluşturulurken ve bekleyen bir istek kabul edilirken çağıranı ve hedefi ayrı ayrı denetler. Hesaplardan biri sınıra ulaştıysa istek 400 MAX_FRIENDS ile başarısız olur. Engelleme bu sınıra tabi değildir.

İlişkileri listele

GET /users/@me/relationships

Çağıranın tuttuğu her ilişki nesnesini döndürür; arkadaşlıkları, engellemeleri ve her iki yöndeki bekleyen istekleri kapsar.

İşlem sayfalanmaz ve kümenin tamamı tek bir yanıtta gelir. Sıralamaya güvenilemez. Bağlı bir istemci aynı kümeyi Gateway Ready yükünde de alır.

Yanıt

Durum Gövde Koşul
200 ilişki nesneleri dizisi İlişkiler döndürüldü (boş dizi olabilir)

Hız sınırı

user:relationships:list kovasında, kimliği doğrulanmış her kullanıcı için 10 saniyede 40 istek.

Kullanıcı adıyla arkadaşlık isteği gönder

POST /users/@me/relationships

Kullanıcı adıyla belirtilen hesaba bir arkadaşlık isteği gönderir. Başarılı olursa bir ilişki nesnesi döndürür.

TEBHOS kullanıcı adları benzersizdir; bu yüzden hedef yalnızca kullanıcı adıyla bulunur ve bir ayırıcı (discriminator) alanı yoktur. Arama büyük/küçük harf duyarsızdır ve baştaki ve sondaki boşlukları yok sayar. Aramadan sonraki tüm kurallar Kullanıcı kimliğiyle arkadaşlık isteği gönder bölümünde açıklananlardır.

JSON gövdesi

Alan Tür Açıklama
username string Hedef hesabın kullanıcı adı

Yanıt

Durum Gövde Koşul
201 ilişki nesnesi Bekleyen bir istek oluşturuldu veya zaten vardı ya da bekleyen bir gelen istek kabul edildi
400 hata yanıtı username boş (BAD_REQUEST) veya Kullanıcı kimliğiyle arkadaşlık isteği gönder altında listelenen bir kural isteği reddediyor
404 hata yanıtı Bu kullanıcı adına sahip hesap yok ve istek NO_USERS_WITH_TEBHOSTAG_EXIST döndürüyor

Yan etkiler

Yan etkiler, Kullanıcı kimliğiyle arkadaşlık isteği gönder ucununkilerle aynıdır.

Hız sınırı

user:friend_request:send kovasında, kimliği doğrulanmış her kullanıcı için 60 saniyede 10 istek; Kullanıcı kimliğiyle arkadaşlık isteği gönder ile paylaşılır.

Kullanıcı kimliğiyle arkadaşlık isteği gönder

POST /users/@me/relationships/{user_id}

Seçilen hesaba bir arkadaşlık isteği gönderir. Başarılı olursa bir ilişki nesnesi döndürür. Yol hiçbir istek gövdesi okumaz.

TEBHOS isteği şu sırayla değerlendirir:

  1. Tamsayı olmayan bir user_id 400 BAD_REQUEST, hiçbir hesabı belirtmeyen bir kimlik 404 NOT_FOUND döndürür.
  2. Çağıranın kendi kimliği 400 CANNOT_SEND_FRIEND_REQUEST_TO_SELF döndürür.
  3. Çağıranın hedefle mevcut kaydı sonraki adımı belirler:
    • INCOMING_REQUEST: bekleyen istek, tam olarak Arkadaşlık isteğini kabul et veya kullanıcıyı engelle ucunun yapacağı gibi kabul edilir ve ortaya çıkan FRIEND kaydı döndürülür.
    • OUTGOING_REQUEST: mevcut istek değiştirilmeden döndürülür.
    • FRIEND: 400 ALREADY_FRIENDS.
    • BLOCKED (çağıran hedefi engellemiş): 400 CANNOT_SEND_FRIEND_REQUEST_TO_BLOCKED_USER.
  4. Çağıranı engellemiş bir hedef 400 FRIEND_REQUEST_BLOCKED döndürür. Kod, aşağıdaki gizlilik reddiyle aynıdır; bu yüzden çağıran engellendiğini anlayamaz.
  5. Hedefin arkadaşlık isteği gizlilik ayarı (kullanıcı ayarlarındaki arkadaşlık kaynağı bayrakları) denetlenir. Yalnızca arkadaşlarının arkadaşlarından veya ortak bir sunucunun üyelerinden istek kabul eden bir hedef, ilgisiz bir çağıranı 400 FRIEND_REQUEST_BLOCKED ile reddeder.
  6. İlişki sınırı her iki hesap için denetlenir.

4–6. adımlar yalnızca gerçekten yeni bir isteğe uygulanır. Bekleyen bir gelen isteğin kabul edilmesi (3. adım) ilişki sınırını yine denetler ama gizlilik ayarını denetlemez.

Yol parametreleri

Alan Tür Açıklama
user_id snowflake Hedef hesabın kimliği

Yanıt

Durum Gövde Koşul
201 ilişki nesnesi Bekleyen bir istek oluşturuldu veya zaten vardı ya da bekleyen bir gelen istek kabul edildi
400 hata yanıtı Kimlik hatalı biçimli, hedef çağıranın kendisi, bir ilişki veya gizlilik kuralı isteği reddediyor ya da ilişki sınırına ulaşıldı
404 hata yanıtı Hedef hesap mevcut değil (NOT_FOUND) veya bekleyen bir gelen istek kabul sırasında geri çekildi (UNKNOWN_USER)

Yan etkiler

Yeni bir istek, çağıran için bir OUTGOING_REQUEST kaydı ve hedef için bir INCOMING_REQUEST kaydı yazar ve her iki hesaba, her birine kendi kaydıyla birlikte Relationship Add gönderir.

Hedef çağırana zaten bir istek göndermişse, bekleyen her iki kayıt da FRIEND kayıtlarıyla değiştirilir ve Relationship Update her iki hesaba ulaşır.

Mevcut bir giden isteğin döndürülmesi hiçbir şey yazmaz ve hiçbir olay göndermez.

Bu yoldaki hiçbir akış bir doğrudan mesaj kanalı açmaz.

Hız sınırı

user:friend_request:send kovasında, kimliği doğrulanmış her kullanıcı için 60 saniyede 10 istek; Kullanıcı adıyla arkadaşlık isteği gönder ile paylaşılır.

Arkadaşlık isteğini kabul et veya kullanıcıyı engelle

PUT /users/@me/relationships/{user_id}

Bekleyen bir gelen arkadaşlık isteğini kabul eder ya da gövde BLOCKED seçtiğinde seçilen hesabı engeller. Çağıranın ortaya çıkan ilişki nesnesini döndürür.

İşlemi type üyesi seçer

Gönderilmeyen gövde, gönderilmeyen type ve type: 1 değerlerinin hepsi bekleyen bir gelen isteğin kabulünü seçer. type: 2 engellemeyi seçer. Başka her değer 400 BAD_REQUEST döndürür. 1 göndermek, istek olmayan yerde arkadaşlık oluşturmaz.

user_id hatalı biçimliyse veya çağıranın kendi kimliğiyse her iki işlem de 400 BAD_REQUEST, hiçbir hesabı belirtmiyorsa 404 NOT_FOUND döndürür.

Kabul, çağıranın hedef için bir INCOMING_REQUEST kaydı yoksa 404 UNKNOWN_USER döndürür; ardından ilişki sınırını her iki hesaba uygular.

Engellemenin başka kabul kuralı yoktur. İlişki sınırına veya hedefin gizlilik ayarlarına tabi değildir.

Yol parametreleri

Alan Tür Açıklama
user_id snowflake Hedef hesabın kimliği

JSON gövdesi

Gövde gönderilmeyebilir; bu durumda kabul seçilir.

Alan Tür Açıklama
type? integer Kabul için 1 (varsayılan) veya engellemek için 2. relation_type takma ad olarak kabul edilir

Yanıt

Durum Gövde Koşul
200 ilişki nesnesi Arkadaşlık veya engelleme döndürüldü
400 hata yanıtı Kimlik hatalı biçimli veya çağıranın kendisi, type değeri 1 veya 2 değil ya da ilişki sınırına ulaşıldı
404 hata yanıtı Hedef hesap mevcut değil veya bekleyen bir gelen istek yok

Yan etkiler

Kabul, her iki hesaptaki bekleyen kayıtları FRIEND kayıtlarıyla değiştirir, since değerini geçerli zamana ayarlar ve her iki hesaba Relationship Update gönderir. Doğrudan mesaj kanalı açmaz; iki taraf da Özel kanal oluştur ile bir kanal açabilir.

Engelleme, her iki hesaptaki mevcut kayıtları (arkadaşlık veya her iki yöndeki bekleyen istek) siler ve yalnızca çağıran için bir BLOCKED kaydı yazar. Relationship Add engellemeyle birlikte çağırana, Relationship Remove ise çağıranın kimliğiyle birlikte hedefe ulaşır. Remove, hedefin hiç kaydı olmasa bile gönderilir. Zaten engellenmiş bir hesabı engellemek aynı kaydı yeniden yazar. Engelleme, çiftin doğrudan mesaj kanalını hiçbir zaman kapatmaz veya silmez.

Hız sınırı

user:friend_request:accept kovasında, kimliği doğrulanmış her kullanıcı için 10 saniyede 20 istek.

İlişkiyi kaldır

DELETE /users/@me/relationships/{user_id}

Çağıranın seçilen hesapla olan arkadaşlığını, her iki yöndeki bekleyen arkadaşlık isteğini veya engellemesini kaldırır. Başarılı olursa boş gövdeyle 204 döndürür.

Yol hiçbir istek gövdesi okumaz. Neyin kaldırılacağını çağıranın mevcut kaydı belirler; böylece aynı yol arkadaşlıktan çıkarır, isteği iptal eder veya reddeder ve engeli kaldırır.

Yol parametreleri

Alan Tür Açıklama
user_id snowflake İlişkili hesabın kimliği

Yanıt

Durum Gövde Koşul
204 boş İlişki kaldırıldı
400 hata yanıtı user_id hatalı biçimli
404 hata yanıtı Hesap mevcut değil veya çağıranın onunla hiçbir türde ilişkisi yok (NOT_FOUND)

Yan etkiler

Bir arkadaşlığın veya her iki yöndeki bekleyen bir isteğin kaldırılması her iki hesabın kaydını da siler ve her ikisine, id içinde diğer hesabın kimliğini taşıyan Relationship Remove gönderir. Dolayısıyla gelen bir isteği reddetmek gönderenin OUTGOING_REQUEST kaydını da kaldırır ve gönderen bilgilendirilir.

Engelleme yalnızca tek bir hesapta saklanır; bu yüzden bir engellemeyi kaldırmak çağıranın kaydını siler ve Relationship Remove olayını yalnızca çağırana gönderir.

Hız sınırı

user:relationship:delete kovasında, kimliği doğrulanmış her kullanıcı için 10 saniyede 30 istek.

İlişki takma adını değiştir

PATCH /users/@me/relationships/{user_id}

Çağıranın bir arkadaşı için özel takma adını ayarlar veya temizler. Güncellenmiş ilişki nesnesini döndürür. Çağırana bir Relationship Update Gateway olayı gönderir.

Yalnızca FRIEND kaydı takma ad kabul eder. Diğer tüm ilişki durumları 404 NOT_FOUND döndürür.

Takma ad çağırana özeldir

TEBHOS bunu yalnızca çağıranın kaydına yazar. Arkadaş bunu hiçbir yanıtta okumaz ve hiçbir Dispatch'te almaz.

Yol parametreleri

Alan Tür Açıklama
user_id snowflake Arkadaşın kimliği

JSON gövdesi

Alan Tür Açıklama
nickname? ?string Saklanacak takma ad; temizlemek için null (veya üyeyi göndermeyin)

Değer gönderildiği gibi saklanır. Sunucu değeri kırpmaz ve düz bir boş dize temizlenmez, boş dize olarak saklanır.

Yanıt

Durum Gövde Koşul
200 ilişki nesnesi Güncellenmiş ilişki döndürüldü
400 hata yanıtı user_id hatalı biçimli veya gövde bir JSON nesnesi değil
404 hata yanıtı Hesap mevcut değil veya onunla bir FRIEND kaydı yok

Yan etkiler

Kayıt yalnızca çağıran için değişir ve share_voice_activity saklanan değerini korur. Saklanan bir since değeri korunur; değeri olmayan bir kayda geçerli zaman damgası basılır. Relationship Update, zaten saklanan değeri gönderenler dahil kabul edilen her istek için çağırana ulaşır.

Hız sınırı

user:relationship:update kovasında, kimliği doğrulanmış her kullanıcı için 10 saniyede 30 istek.

Bekleyen istekleri toplu yok say

POST /users/@me/relationships/bulk-ignore

Eşleşen gelen arkadaşlık isteklerini kaldırır. Başarılı olursa bir toplu yok sayma sonucu nesnesi döndürür.

Eşleştirme yalnızca çağıranın INCOMING_REQUEST kayıtlarına uygulanır. TEBHOS, bir gönderenin hesap yaşını snowflake değerine gömülü zaman damgasından türetir ve bunu hariç tutan bir üst sınır olarak max_account_age_seconds ile karşılaştırır; bu yüzden tam olarak o yaşta olan bir gönderen eşleşmez. Tek bir çağrı eşleşen tüm istekleri kaldırır.

Sınırsız bir new_accounts filtresi her şeyi kaldırır

Yaş karşılaştırması yalnızca max_account_age_seconds verildiğinde uygulanır. Bu değer olmadan new_accounts seçmek, tam olarak all gibi her gelen arkadaşlık isteğini kaldırır.

JSON gövdesi

Gövde gönderilmeyebilir; bu durumda all filtresi uygulanır.

Alan Tür Açıklama
filter? string Uygulanacak toplu yok sayma filtresi (varsayılan all)
max_account_age_seconds? integer Saniye cinsinden, hariç tutan en büyük gönderen hesap yaşı; yalnızca new_accounts filtresi tarafından okunur. 0 veya daha küçük bir değer hiçbir gönderenle eşleşmez

Yanıt

Durum Gövde Koşul
200 toplu yok sayma sonucu nesnesi Eşleşen istekler kaldırıldı (hiç olmayabilir)

Yan etkiler

Eşleşen her istek, çağıranın INCOMING_REQUEST kaydını ve gönderenin OUTGOING_REQUEST kaydını kaldırır ve hem çağırana hem gönderene Relationship Remove gönderir. Hiçbir şeyle eşleşmeyen bir çağrı hiçbir şeyi değiştirmez.

Yarıda başarısız olan bir çağrı bazı gelen arkadaşlık isteklerini kaldırmış olabilir ve hiçbir sayı döndürmez. Kalanları okumak için İlişkileri listele ucunu yeniden çağırın.

Hız sınırı

relationship:bulk_ignore kovasında, kimliği doğrulanmış her kullanıcı için 60 saniyede 5 istek.

Gateway olayları

Her ilişki Dispatch'i yalnızca belirttiği hesabın oturumlarına gider:

Olay Yük
RELATIONSHIP_ADD Alıcının ilişki nesnesi
RELATIONSHIP_UPDATE Alıcının güncellenmiş ilişki nesnesi
RELATIONSHIP_REMOVE id değeri ilişkili hesabın kimliği olan bir nesne

Zarf için bkz. Gateway olayları.