İ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:
- Tamsayı olmayan bir
user_id400BAD_REQUEST, hiçbir hesabı belirtmeyen bir kimlik 404NOT_FOUNDdöndürür. - Çağıranın kendi kimliği 400
CANNOT_SEND_FRIEND_REQUEST_TO_SELFdöndürür. - Ç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 çıkanFRIENDkaydı döndürülür.OUTGOING_REQUEST: mevcut istek değiştirilmeden döndürülür.FRIEND: 400ALREADY_FRIENDS.BLOCKED(çağıran hedefi engellemiş): 400CANNOT_SEND_FRIEND_REQUEST_TO_BLOCKED_USER.
- Çağıranı engellemiş bir hedef 400
FRIEND_REQUEST_BLOCKEDdöndürür. Kod, aşağıdaki gizlilik reddiyle aynıdır; bu yüzden çağıran engellendiğini anlayamaz. - 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_BLOCKEDile reddeder. - İ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ı.