Ana içeriğe geç

Mesajlar

Mesaj, bir kanaldaki tek bir gönderidir; metni, ekleri, gömmeleri, çıkartmaları ve tepkileri onunla birlikte saklanır. Kanal meta verileri ve üyelik Kanallar kaynağında tanımlanır.

Metin taşıyan kanal, mesaj saklayan bir kanal türüdür: sunucu kategorisi ve sunucu bağlantı kanalı dışındaki her tür. Mesaj geçmişi kesme noktası, sunucuda saklanan bir zamandır; READ_MESSAGE_HISTORY iznine sahip olmayan bir üye, bu zamandan önce oluşturulmuş hiçbir şeyi okuyamaz.

Bir yol yalnızca kullanıcı olarak belirtilmedikçe hem kullanıcı oturumunu (Authorization: Bearer <token>) hem de bot token'ını (Authorization: Bot <token>) kabul eder. Hata gövdeleri Hatalar sayfasındaki biçime uyar.

Kanal çözümleme

TEBHOS, yola özgü herhangi bir yetkilendirmeyi uygulamadan önce kanalı çözümler:

  • Var olmayan bir kanal, çağıranın üyesi olmadığı bir sunucu ve çağıranın alıcısı olmadığı bir özel kanal, hepsi 404 NOT_FOUND döndürür.
  • Kanalda VIEW_CHANNEL iznine sahip olmayan bir sunucu üyesi 403 FORBIDDEN alır.
  • READ_MESSAGE_HISTORY iznine sahip olmayan bir sunucu çağıranı, yalnızca sunucunun mesaj geçmişi kesme noktasında veya sonrasında oluşturulan mesajları görür; sunucunun kesme noktası yoksa hiçbir şey görmez. Daha eski mesajlar 403 olarak değil, hiç yokmuş gibi davranır (boş liste veya 404).
  • Zaman aşımındaki bir üye o sunucuda mesaj gönderemez, yazıyor göstergesi yayınlayamaz, tepki veremez veya yükleme yapamaz (403 FORBIDDEN).

İzin bitleri yalnızca sunucu kanallarında değerlendirilir.

Mesaj nesnesi

Yapı

Alan Tür Açıklama
id snowflake Mesajın kimliği
channel_id snowflake Kanalın kimliği
author kısmi kullanıcı nesnesi Mesajın sahibi olarak gösterilen kullanıcı
webhook_id? snowflake Kaynak webhook kimliği; yalnızca webhook tarafından yazılmış mesajlarda bulunur
type integer Mesaj türü
flags integer Mesaj bayrakları
content string Mesajın metni; mesaj yalnızca medya içeriyorsa boştur
timestamp ISO8601 zaman damgası Mesajın snowflake değerinden türetilen oluşturulma zamanı
edited_timestamp ?ISO8601 zaman damgası En son düzenleme zamanı; mesaj hiç düzenlenmemişse null
pinned boolean Mesajın sabitlenip sabitlenmediği
mention_everyone boolean İçeriğin @everyone veya @here içerip içermediği
tts boolean Mesajın metinden konuşmaya (text-to-speech) olarak gönderilip gönderilmediği
mentions array[kısmi kullanıcı nesnesi] İçerikte bahsedilen kullanıcılar
mention_roles array[snowflake] İçerikte bahsedilen rollerin kimlikleri
mention_channels? array[kanal bahsetme nesnesi] İçeriğin kimlikle bağlantı verdiği kanallar
embeds array[gömme nesnesi] Mesajdaki bağlantı önizlemeleri ve zengin gömmeler
attachments array[mesaj eki nesnesi] Mesaja eklenen dosyalar
stickers array[çıkartma öğesi nesnesi] Mesajla gönderilen çıkartmalar
reactions? array[tepki nesnesi] Tepki özetleri; mesajda tepki yoksa yer almaz
message_reference? mesaj referansı nesnesi Yanıt veya iletme referansı
message_snapshots? array[mesaj anlık görüntüsü nesnesi] Bir iletme için yakalanan kopyalar
nonce? string Çağıranın verdiği nonce; yalnızca oluşturma yanıtında ve ilgili Gateway olayında geri yansıtılır
call? mesaj araması nesnesi Bir CALL mesajına bağlı arama durumu
referenced_message? ?mesaj nesnesi Çözümlenmiş yanıt hedefi; kendi referenced_message alanı olmadan

mentions, mention_roles, embeds, attachments ve stickers her zaman bulunur ve boş olabilir. ? ile işaretlenmiş bir alan, değeri yoksa yanıtta yer almaz.

referenced_message üç durumdan birindedir: mesaj bir yanıt değilse anahtar hiç yoktur; yanıt hedefi artık mevcut değilse anahtar vardır ve null olur; hedef mevcutsa anahtar mesajla birlikte gelir. İstemci, yokluğu null değerinden anahtarın varlığına bakarak ayırt etmelidir.

Webhook tarafından yazılmış bir mesajın kullanıcı yazarı yoktur. TEBHOS yazarı webhook'tan oluşturur: id webhook kimliği, username mesajın gönderildiği ad, discriminator "0", avatar webhook avatar hash'i ve bot true olur. Yazar hesabı artık çözümlenemeyen bir mesaj, yalnızca gerçek bir id içeren bir yazar nesnesi taşır.

İletilen mesajın message_snapshots içinde değişmez kopyaları vardır

Yanıt referenced_message alanına çözümlenir; iletmede bu alan yoktur. TEBHOS anlık görüntüyü iletme anında yakalar ve bu görüntü kaynaktaki sonraki düzenlemeleri hiçbir zaman izlemez.

Örnek

{
  "id": "1501320000000000000",
  "channel_id": "1501314428688998182",
  "author": {
    "id": "1501314428688990000",
    "username": "ada",
    "discriminator": "0",
    "global_name": "Ada",
    "avatar": "a1b2c3d4e5f60718293a4b5c6d7e8f90",
    "avatar_color": null,
    "flags": 0
  },
  "type": 0,
  "flags": 0,
  "content": "shipping it",
  "timestamp": "2026-08-31T09:14:02.000Z",
  "edited_timestamp": null,
  "pinned": false,
  "mention_everyone": false,
  "tts": false,
  "mentions": [],
  "mention_roles": [],
  "embeds": [],
  "attachments": [],
  "stickers": []
}

Mesaj türleri

Değer Ad Açıklama
0 DEFAULT Sıradan mesaj (iletmeler ve webhook mesajları için de kullanılır)
1 RECIPIENT_ADD Grup DM'e alıcı eklendiğini bildiren sistem mesajı
2 RECIPIENT_REMOVE Grup DM'den alıcı çıkarıldığını bildiren sistem mesajı
3 CALL Özel arama sistem mesajı
4 CHANNEL_NAME_CHANGE Grup DM ad değişikliği sistem mesajı
5 CHANNEL_ICON_CHANGE Grup DM simge değişikliği sistem mesajı
6 CHANNEL_PINNED_MESSAGE Sabitlenen mesaja referans veren sabitleme sistem mesajı
7 USER_JOIN Sunucuya katılma sistem mesajı
19 REPLY Yanıt referansı içeren mesaj

Yalnızca DEFAULT ve REPLY mesajları sabitlenebilir veya sabitlemesi kaldırılabilir; diğer türler 400 BAD_REQUEST döndürür.

Mesaj bayrakları

Değer Ad Açıklama
1 << 2 SUPPRESS_EMBEDS Gömmelerin gösterilmesini engeller (bağlantı önizlemeleri yine çözümlenir ancak yayınlanmaz)
1 << 12 SUPPRESS_NOTIFICATIONS Anlık bildirim veya masaüstü bildirimi oluşturmaz
1 << 13 VOICE_MESSAGE Mesaj bir sesli mesajdır
1 << 17 COMPACT_ATTACHMENTS Ekleri sıkışık bir düzende gösterir

Bu bitler gönderilebilir kümenin tamamıdır. Oluşturma işlemi verilen değerden yalnızca bu bitleri tutar; değiştirme işlemi yalnızca bu bitleri değiştirir ve saklanan diğer tüm bitleri korur. Diğer bitler hata verilmeden atılır.

Mesaj eki nesnesi

Ek, bir mesaja bağlı olarak saklanan ve TEBHOS CDN'inden sunulan tek bir dosyadır.

Yapı

Alan Tür Açıklama
id snowflake Ekin kimliği
filename string Saklanan dosya adı
title ?string Görünen başlık veya null
description ?string Alternatif metin veya null
content_type ?string Yükleme sırasında kaydedilen medya türü
content_hash ?string Saklanan baytların SHA-256 hash'i; hiç hesaplanmamışsa null
size integer Bayt cinsinden saklanan boyut
url ?string Herkese açık dosya URL'si: https://cdn.tebhos.com/attachments/{channel_id}/{attachment_id}/{filename}
proxy_url ?string Görseller için (SVG hariç): https://tebhos.com/api/v1/files/attachments/{channel_id}/{attachment_id}/{filename} biçiminde yeniden boyutlandırılabilir bir URL. Diğer dosyalar için null
width? integer Görsel medya için piksel genişliği
height? integer Görsel medya için piksel yüksekliği
placeholder? string Kodlanmış medya yer tutucusu
flags integer Ek bayrakları
nsfw? boolean TEBHOS medya güvenliği taraması tarafından ayarlanır; true, dosyanın işaretlendiği ve istemcilerin onu tıklayarak açılan bir perdenin arkasına gizlediği anlamına gelir
duration? integer Saniye cinsinden ses veya video süresi
waveform? string Yükleyenin sağladığı, Base64 ile kodlanmış sesli mesaj dalga biçimi
expires_at ?ISO8601 zaman damgası Ekin kaydedilmiş depolama bitiş zamanı veya null
expired? boolean expires_at zamanının geçip geçmediği

Ek URL'leri imzalı değildir ve kendiliğinden süresi dolmaz. proxy_url; width, height ve format sorgu parametrelerini kabul eder; bkz. Medya vekili.

Örnek

{
  "id": "1501320000000000001",
  "filename": "diagram.png",
  "title": null,
  "description": "Sequence diagram",
  "content_type": "image/png",
  "content_hash": null,
  "size": 18422,
  "url": "https://cdn.tebhos.com/attachments/1501314428688998182/1501320000000000001/diagram.png",
  "proxy_url": "https://tebhos.com/api/v1/files/attachments/1501314428688998182/1501320000000000001/diagram.png",
  "width": 1280,
  "height": 720,
  "flags": 0,
  "expires_at": null
}

Ek bayrakları

Değer Ad Açıklama
1 << 3 IS_SPOILER Ek, spoiler olarak gösterilir
1 << 4 CONTAINS_EXPLICIT_MEDIA Medya denetimi eki müstehcen olarak işaretledi
1 << 5 IS_ANIMATED Ek hareketlidir

Emoji nesnesi

Alan Tür Açıklama
id ?snowflake Özel emojinin kimliği; Unicode emoji için null
name string Özel emojinin adı veya Unicode emojinin kendisi
animated? boolean Özel emojinin hareketli olup olmadığı

Tepki nesnesi

Tepki nesnesi, bir mesajdaki tek bir emoji grubunu özetler.

Alan Tür Açıklama
emoji emoji nesnesi Bu grubun saydığı emoji
count integer Bu emojiyi ekleyen kullanıcı sayısı
me boolean Çağıranın bu emojiyi ekleyip eklemediği

Gruplar, ilk tepkilerinin eklendiği sırayla listelenir. TEBHOS, mesaj başına tepki grubu veya kullanıcı sayısına bir üst sınır uygulamaz.

Örnek

{
  "emoji": {"id": "1501314428688991234", "name": "party_parrot", "animated": true},
  "count": 7,
  "me": true
}

Mesaj referansı nesnesi

Alan Tür Açıklama
channel_id snowflake Referans verilen kanalın kimliği
message_id snowflake Referans verilen mesajın kimliği
guild_id? snowflake Referans verilen sunucunun kimliği
type integer Mesaj referansı türü

Mesaj referansı türleri

Değer Ad Açıklama
0 DEFAULT Yanıt referansı (type verilmediğinde varsayılan)
1 FORWARD message_snapshots ile temsil edilen iletme referansı

Mesaj anlık görüntüsü nesnesi

Anlık görüntü, iletilen tek bir mesajın düz ve değişmez bir kopyasıdır. Mesaj kimliği, kanal kimliği veya yazarı yoktur.

Alan Tür Açıklama
content? string Anlık görüntüsü alınan metin
timestamp ISO8601 zaman damgası Özgün oluşturulma zamanı
edited_timestamp? ISO8601 zaman damgası Özgün düzenleme zamanı
mentions? array[snowflake] Anlık görüntüdeki bahsedilen kullanıcı kimlikleri
mention_roles? array[snowflake] Anlık görüntüdeki bahsedilen rol kimlikleri
embeds? array[gömme nesnesi] Anlık görüntüdeki gömmeler (kaynakta SUPPRESS_EMBEDS varsa yer almaz)
attachments? array[mesaj eki nesnesi] Anlık görüntüdeki ekler. Hedef kanala kopyalanırlar; bu yüzden kaynağın silinmesi onları etkilemez
stickers? array[çıkartma öğesi nesnesi] Anlık görüntüdeki çıkartmalar
type integer Özgün mesaj türü
flags integer Özgün mesaj bayrakları

Mesaj araması nesnesi

Alan Tür Açıklama
participants array[snowflake] Katılımcı kullanıcı kimlikleri
ended_timestamp ?ISO8601 zaman damgası Aramanın bitiş zamanı; arama sürerken null

Kanal bahsetme nesnesi

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

Çıkartma öğesi nesnesi

Alan Tür Açıklama
id snowflake Çıkartmanın kimliği
name string Gönderim anındaki çıkartma adı
animated boolean Çıkartmanın hareketli olup olmadığı
image_url? string Çıkartmanın güncel görsel URL'si; çıkartma artık mevcut değilse yer almaz
guild_id? snowflake Çıkartmanın sahibi olan sunucunun kimliği
legacy_id? string Çıkartmanın eski bir tanımlayıcısı; bazı çıkartmalarda bulunur

Gömme nesnesi

Gömme, bir mesajdaki işlenmiş önizlemedir: ya içerikteki bir bağlantıdan çözümlenir ya da bir zengin gömme girdisi olarak sağlanır.

Yapı

Alan Tür Açıklama
type string Gömme türü
title? string Gömme başlığı
description? string Gömme açıklaması
url? string Gömmenin hedef URL'si
timestamp? ISO8601 zaman damgası Gömme zaman damgası
color? integer 24 bitlik RGB tamsayısı olarak gömme rengi
author? gömme yazarı nesnesi Gömme yazarı
provider? gömme sağlayıcısı nesnesi Harici sağlayıcı (yalnızca bağlantı önizlemeleri)
thumbnail? gömme medyası nesnesi Küçük resim
image? gömme medyası nesnesi Ana görsel
video? gömme medyası nesnesi Video medyası (yalnızca bağlantı önizlemeleri)
audio? gömme medyası nesnesi Ses medyası (yalnızca bağlantı önizlemeleri)
footer? gömme alt bilgisi nesnesi Gömme alt bilgisi
fields? array[gömme alanı nesnesi] Gömme alanları
html? string Temizlenmiş oEmbed işaretlemesi (yalnızca bağlantı önizlemeleri)
children? array[gömme nesnesi] İç içe bağlantı önizleme gömmeleri

İsteğe bağlı her alan, değeri yoksa yanıtta yer almaz.

Örnek

{
  "type": "rich",
  "title": "Release 2.4.0",
  "description": "Voice reconnects are now instant.",
  "url": "https://example.com/releases/2.4.0",
  "color": 5793266,
  "footer": {"text": "example.com"},
  "fields": [{"name": "Platform", "value": "Desktop", "inline": true}]
}

Gömme türleri

Değer Açıklama
rich Bir bot, kullanıcı veya webhook tarafından sağlanan zengin gömme
link Genel bir bağlantı önizlemesi; henüz çözümlenmemiş bir önizlemenin türü de budur
image Bir bağlantıdan çözümlenen görsel önizlemesi
video Bir bağlantıdan çözümlenen video önizlemesi
gifv Döngüyle oynayan hareketli video önizlemesi (örneğin bir KLIPY GIF bağlantısı)
article Ansiklopedi makalesi önizlemesi
social Sosyal ağ gönderisi önizlemesi

Gömme yazarı nesnesi

Alan Tür Açıklama
name string Yazar adı
url? string Yazar bağlantısı
icon_url? string Yazar simgesi URL'si

Gömme medyası nesnesi

Alan Tür Açıklama
url string Medya URL'si
proxy_url string Her zaman url ile aynıdır
width? integer Piksel genişliği
height? integer Piksel yüksekliği
duration? integer Saniye cinsinden süre
description? string Medya açıklaması
content_type? string Medya türü
placeholder? string Kodlanmış medya yer tutucusu
flags? integer Ek bayraklarından CONTAINS_EXPLICIT_MEDIA ve IS_ANIMATED kullanan medya bayrakları
Alan Tür Açıklama
text string Alt bilgi metni
icon_url? string Alt bilgi simgesi URL'si

Gömme alanı nesnesi

Alan Tür Açıklama
name string Alan adı
value string Alan değeri
inline boolean Alanın satır içi gösterilip gösterilemeyeceği

Gömme sağlayıcısı nesnesi

Alan Tür Açıklama
name string Sağlayıcı adı
url? string Sağlayıcı URL'si

İzin verilen bahsetmeler nesnesi

İzin verilen bahsetmeler nesnesi, mesaj metninde yazılan bahsetmelerden hangilerinin birine bildirim göndereceğini seçer. Bahsetmeler yine gösterilir ve mesajda saklanır; yalnızca bildirimler filtrelenir.

Alan Tür Açıklama
parse? array[string] Bildirim gönderen bahsetme kategorileri: users, roles, everyone
users? array[snowflake] Bildirim almasına izin verilen kullanıcı kimlikleri (parse: ["users"] yerine kullanılır)
roles? array[snowflake] Bildirim almasına izin verilen rol kimlikleri (parse: ["roles"] yerine kullanılır)
replied_user? boolean Yanıtlanan mesajın yazarının bildirim alıp almayacağı (varsayılan true)

Nesne verilmediğinde her bahsetme bildirim gönderir. Nesne verildiğinde users veya roles verilmemişse parse varsayılan olarak üç kategorinin hepsidir; bir kategori ancak parse onu adlandırıyorsa veya açık kimlik listesi o kimliğe izin veriyorsa bildirim gönderir. Boş nesne {}, yanıt bildirimi dahil tüm bildirimleri bastırır. Boş olmayan bir parse, boş olmayan bir users veya roles listesiyle birlikte verilirse istek 400 PARSE_AND_USERS_OR_ROLES_CANNOT_BE_USED_TOGETHER ile reddedilir.

Bir yanıt (bire bir DM'ler dışında), replied_user false olmadıkça veya nesne {} olmadıkça yanıtlanan mesajın yazarını mesajın mentions listesine ekler ve ona bildirim gönderir. Kendi mesajınızı yanıtlamak size bildirim göndermez.

Bu nesneden bağımsız olarak @everyone ve @here, yalnızca gönderen bir sunucu kanalında MENTION_EVERYONE iznine sahipse bildirim gönderir; bir rol bahsetmesi ise rolün üyelerine yalnızca rol bahsedilebilir durumdaysa veya gönderen MENTION_EVERYONE iznine sahipse bildirim gönderir.

Zengin gömme girdisi nesnesi

Bir bot veya kullanıcının Mesaj oluştur isteğinde embeds içinde verdiği biçim. TEBHOS verilen her gömmeyi rich türüyle saklar.

Alan Tür Açıklama
url? string Gömmenin hedef URL'si, http veya https
title? string Gömme başlığı, en fazla 256 karakter
description? string Gömme açıklaması, en fazla 4.096 karakter
color? integer 24 bitlik RGB tamsayısı olarak gömme rengi, 0 ile 16777215 (0xFFFFFF) arası
timestamp? ISO8601 zaman damgası veya integer Gömme zaman damgası; ISO 8601 string'i ya da Unix döneminden bu yana milisaniye olarak
author? object {name, url?, icon_url?}. name en fazla 256 karakterdir. name eksik veya boşsa atılır
image? object {url, description?}. url eksik veya boşsa atılır. url, attachment://{filename} olabilir; bkz. Eklerden gömme görselleri
thumbnail? object {url, description?}. url eksik veya boşsa atılır. url, attachment://{filename} olabilir
footer? object {text, icon_url?}. text en fazla 2.048 karakterdir. text eksik veya boşsa atılır
fields? array[object] En fazla 25 {name, value, inline?} girdisi. name 1-256, value 0-1.024 karakterdir

Her URL (url, author.url, author.icon_url, image.url, thumbnail.url, footer.icon_url) http veya https kullanmalıdır. image.url ve thumbnail.url bunun yerine attachment://{filename} olabilir.

Gömme sınırları

Sınır Değer Aşıldığında
Mesaj başına verilen gömme 10 400 INVALID_FORM_BODY, embeds yolunda TOO_MANY_EMBEDS hata kodu
Verilen tüm gömmelerdeki toplam karakter 6.000 400 INVALID_FORM_BODY, embeds yolunda EMBEDS_EXCEED_MAX_CHARACTERS hata kodu
Başlık 256 karakter Şema ihlali, aşağıya bakın
Açıklama 4.096 karakter Şema ihlali
Gömme başına alan 25 Şema ihlali
Alan adı / değeri 1-256 / 0-1.024 karakter Şema ihlali
Alt bilgi metni 2.048 karakter Şema ihlali
Yazar adı 256 karakter Şema ihlali
Renk 0 ile 16777215 arası Şema ihlali
İçerikten çözümlenen bağlantı önizlemeleri 3 URL Sonraki URL'ler önizleme almaz

6.000 karakterlik toplam, verilen her gömmenin title, description, footer.text, author.name alanlarını ve her alanın name ile value değerlerini sayar.

Verilen gömmeler önce gelir; içerikteki URL'lerin bağlantı önizlemeleri bunların ardından toplam 10 gömmeye kadar eklenir, fazlası atılır.

Şema ihlalinin nasıl bildirildiği gövdeye bağlıdır:

  • JSON gövde: message_data yolunda INVALID_MESSAGE_DATA koduyla tek bir hata içeren 400 INVALID_FORM_BODY. Yanıt hangi alanın başarısız olduğunu söylemez.
  • Multipart gövde (payload_json): Başarısız her alan için bir hata içeren 400 INVALID_FORM_BODY; örneğin embeds.0.title yolunda STRING_LENGTH_INVALID kodu.

Aynı sınırlar Mesajı değiştir ve Webhook'u çalıştır için de geçerlidir.

Eklerden gömme görselleri

Bir gömmenin image.url veya thumbnail.url değeri, Mesaj oluştur ve Mesajı değiştir isteklerinde aynı mesajla gönderilen bir dosyaya attachment://{filename} biçiminde işaret edebilir. Referans, mesaj saklanırken çözümlenir:

  • URL, ekin dosya URL'siyle değiştirilir; ekin genişliği, yüksekliği, içerik türü ve yer tutucusu gömme medyasına kopyalanır;
  • referans verilen ek, mesajın attachments listesinden çıkarılır; böylece dosya yalnızca gömmenin içinde görünür.

{filename}, ekin dosya adıdır. TEBHOS dosya adlarını, güvenli olmayan karakterleri _ ile değiştirerek saklar (örneğin my photo.png, my_photo.png olur); iki yazım da eşleşir. Yalnızca görsel dosyalara (png, jpg, jpeg, webp, gif) referans verilebilir. Aşağıdaki durumlarda istek, hiçbir şey saklanmadan 400 INVALID_FORM_BODY ile başarısız olur:

errors[].code Koşul
CANNOT_REFERENCE_ATTACHMENTS_WITHOUT_ATTACHMENTS Mesaj hiç ek taşımıyor
REFERENCED_ATTACHMENT_NOT_FOUND Mesajın hiçbir eki bu dosya adına sahip değil
ATTACHMENT_MUST_BE_IMAGE Referans verilen dosya bir görsel değil

Ek yüklemeleri

Bir mesaj, önceden yüklenmiş dosyalara referans verir. Akış şöyledir:

  1. {"attachments": [{"id", "filename", "file_size", "content_type?"}]} gövdesiyle (1-10 girdi) POST /channels/{channel_id}/attachments. Her sonuçta upload_filename (yükleme anahtarı) ve upload_mode bulunur. En fazla 10 MiB olan bir dosya upload_mode: "singlepart" ve tek bir upload_url (300 saniye geçerli, önceden imzalanmış bir PUT URL'si) alır; daha büyük bir dosya ise upload_id, part_size ve parça başına yükleme URL'lerinden oluşan bir parts listesiyle birlikte upload_mode: "multipart" alır.
  2. Her dosyayı kendi upload_url adresine, çok parçalı bir dosyanın her parçasını ise kendi parça URL'sine PUT ile gönderin.
  3. Çok parçalı dosyalar için Ek yüklemelerini tamamla (POST /channels/{channel_id}/attachments/complete) çağrısını yapın.
  4. Mesajı, yükleme anahtarlarını attachment_ids içinde (veya kanal kapsamlı yolda attachments[].upload_filename içinde) vererek gönderin.

Bir mesaj dosyalarını doğrudan multipart/form-data olarak da taşıyabilir; bkz. Çok parçalı gövde.

Yükleme, bir sunucu kanalında SEND_MESSAGES ve ATTACH_FILES izinlerini gerektirir. Bot token'ları kabul edilir. Dosya başına üst sınır 10 MiB, TEBHOS Pro ile 200 MiB veya sunucunun takviye sınırıdır (1. seviyede 50 MiB, 2. seviyede 100 MiB); hangisi büyükse o geçerlidir. Yol, her kullanıcı ve kanal için 10 saniyede 10 isteğe izin verir (channel:attachment:upload). Yüklemeler sayfası yükleme yollarını ayrıntılı olarak anlatır.

Kanal mesajlarını listele

GET /channels/{channel_id}/messages

En yeniden eskiye doğru bir mesaj nesneleri dizisi döndürür. VIEW_CHANNEL gerektirir.

Sorgu parametreleri

Alan Tür Açıklama
limit? integer Döndürülecek mesaj sayısı (en fazla 100, varsayılan 50)
before? snowflake Bu mesaj kimliğinden önceki mesajları döndürür
after? snowflake Bu mesaj kimliğinden sonraki mesajları döndürür
around? snowflake Bu mesaj kimliğini merkez alan bir pencere döndürür; before ve after değerlerini geçersiz kılar. limit 50 iken pencerede 25 daha yeni mesaj, hedef mesaj ve 24 daha eski mesaj bulunur

before ve after birlikte kullanılabilir. Bazı mesajlar çağıranın mesaj geçmişi kesme noktasının dışında kalıyorsa bir sayfa limit değerinden az mesaj içerebilir. Kesme noktası olmayan bir sunucuda READ_MESSAGE_HISTORY iznine sahip olmayan bir çağıran boş dizi alır.

Hız sınırı

channel:messages:read kovasında, her kullanıcı ve kanal için 10 saniyede 100 istek.

curl "https://tebhos.com/api/v1/channels/1501314428688998182/messages?limit=20" \
  -H "Authorization: Bot $TEBHOS_BOT_TOKEN"

Birden fazla kanaldan mesaj listele

POST /channels/messages/bulk

Tek bir istekte birkaç kanaldan sınırlı mesaj pencereleri döndürür. Yalnızca kullanıcı.

Her kanal, Kanal mesajlarını listele ile tamamen aynı şekilde yetkilendirilir. Erişilemeyen tek bir kanal tüm isteği başarısız kılar.

JSON gövdesi

Alan Tür Açıklama
requests array[object] Her biri {channel_id, limit, before?, after?, around?} olan 1-25 girdi. limit 1-25 arasında olmalı ve limit değerlerinin toplamı en fazla 250 olmalıdır

Yanıt gövdesi

Alan Tür Açıklama
channels array[object] İstekteki her girdi için, istek sırasıyla bir {channel_id, messages} girdisi. messages en yeniden eskiye sıralıdır

Hız sınırı

channel:messages:bulk_read kovasında, her kullanıcı için 10 saniyede 20 istek.

Mesajı getir

GET /channels/{channel_id}/messages/{message_id}

Tek bir mesaj nesnesi döndürür. VIEW_CHANNEL gerektirir. Kanala ait olmayan, var olmayan veya çağıranın mesaj geçmişi kesme noktasının dışında kalan bir mesaj 404 NOT_FOUND döndürür.

Hız sınırı

channel:message:read kovasında, her kullanıcı ve kanal için 10 saniyede 100 istek.

Mesaj oluştur

POST /channels/{channel_id}/messages

Bir mesaj oluşturur ve oluşturulan mesaj nesnesiyle birlikte 200 döndürür. Bir Message Create Gateway olayı yayınlar. Gövde JSON'dur veya aynı istekte dosya göndermek için multipart/form-data olur (bkz. Çok parçalı gövde).

Kısıtlamalar

  • Kanal metin taşıyan bir kanal olmalıdır; bağlantı kanalı 400 BAD_REQUEST döndürür.
  • Bir sunucu kanalı VIEW_CHANNEL ve SEND_MESSAGES izinlerini gerektirir ve çağıran, zaman aşımında olmayan bir üye olmalıdır.
  • Kilitli bir kanal her göndereni 403 FORBIDDEN ile reddeder.
  • Bir sunucu kanalında ekler ATTACH_FILES, gömmeler ise EMBED_LINKS iznini gerektirir (aksi hâlde 403 FORBIDDEN). EMBED_LINKS olmadan içerikteki bağlantılar önizleme almaz.
  • Başka bir sunucuya ait özel emoji veya çıkartma, USE_EXTERNAL_EMOJIS veya USE_EXTERNAL_STICKERS iznini ve TEBHOS Pro'yu gerektirir (403 FORBIDDEN).
  • Bire bir DM'de herhangi bir yöndeki engelleme 403 FORBIDDEN, gizlilik ayarları göndereni reddeden bir alıcı ise 400 CANNOT_SEND_MESSAGES_TO_USER döndürür.
  • Çağıran BYPASS_SLOWMODE iznine sahip değilse yavaş mod uygulanır; bkz. Yavaş mod.

JSON gövdesi

Alan Tür Açıklama
content? string Mesaj metni. Bkz. içerik uzunluğu
embeds? array[zengin gömme girdisi nesnesi] Zengin gömmeler (bkz. gömme sınırları)
attachment_ids? array[string] Ek yüklemelerinden gelen yükleme anahtarları, en fazla 10
attachments? array[object] Yüklemelerin meta verileri: {upload_filename, width?, height?, description?, title?, duration?, waveform?, flags?}. Bu yolda bir girdinin upload_filename değeri yüklemeyi attachment_ids listesine de ekler; IS_SPOILER içeren bir flags değeri onu spoiler olarak işaretler
spoiler_attachment_ids? array[string] Spoiler olarak işaretlenecek yükleme anahtarları
sticker_ids? array[snowflake] En fazla 3 çıkartma kimliği
message_reference? object {message_id, channel_id?, guild_id?, type?}. Bkz. yanıtlar ve iletmeler
reply_to_id? snowflake Aynı kanaldaki bir mesaja yanıt referansı için kısaltma
allowed_mentions? izin verilen bahsetmeler nesnesi Bildirim politikası
flags? integer Gönderilebilir kümeyle maskelenen mesaj bayrakları
tts? boolean Metinden konuşmaya isteği. Çağıran SEND_TTS_MESSAGES iznine sahip değilse sunucu kanalında false değerine zorlanır
nonce? string | integer Çağıranın ürettiği bir nonce: 1-32 karakterlik bir string ya da negatif olmayan bir tamsayı (string'e çevrilir). Oluşturulan mesajda ve Gateway olayında nonce olarak geri yansıtılır. Başka bir değer 400 (message_data / INVALID_MESSAGE_DATA) ile başarısız olur
_optimistic_id? string nonce için eski ad; nonce yoksa kullanılır

content, sticker_ids ve bir gömmenin fields alanı null olabilir; bu, alanın verilmemesiyle aynıdır. Bir mesajın görünür içeriği, eki, çıkartması veya gömmesi olmalıdır. Bunların hiçbirini içermeyen bir istek 400 CANNOT_SEND_EMPTY_MESSAGE ile başarısız olur.

Çalışan en küçük gövde:

{
  "content": "hello"
}

Yeniden kullanılan nonce ilk sonucu tekrarlar

Bir nonce, gönderen için beş dakika boyunca hatırlanır. Aynı kanalda yeniden kullanılması, yeni bir kopya oluşturmak yerine ilk isteğin oluşturduğu mesajı (200) döndürür. Farklı bir kanalda yeniden kullanılması 404 NOT_FOUND döndürür. Zaman aşımından sonra gönderimi yeniden deneyen bir istemci aynı nonce'u kullanmalıdır.

Çok parçalı gövde

Content-Type: multipart/form-data ile istek şunları taşır:

Parça Açıklama
payload_json Yukarıda açıklanan JSON gövdesi, bir dize olarak
files[n] Bir dosya; n 0-9 arasındadır. Eski file ve file{n} adları da kabul edilir
content, nonce, tts, flags, sticker_ids İsteğe bağlı düz alanlar; her biri payload_json içindeki aynı anahtarı geçersiz kılar

id değeri bir dosyanın sırasına eşit olan bir attachments girdisi, o dosyanın filename, description ve flags değerlerini sağlar (IS_SPOILER spoiler olarak işaretler). Her dosya, yüklenmiş bir dosyayla aynı denetimlerden geçer (izinler, boyut sınırı, engellenen dosya listesi) ve gövdenin tamamı en fazla 100 MiB olabilir. Gömmeler dosyalara attachment://{filename} ile referans verebilir.

curl -X POST https://tebhos.com/api/v1/channels/1501314428688998182/messages \
  -H "Authorization: Bot $TEBHOS_BOT_TOKEN" \
  -F 'payload_json={"content":"Chart","embeds":[{"title":"Today","image":{"url":"attachment://chart.png"}}],"attachments":[{"id":0,"filename":"chart.png"}]}' \
  -F "files[0][email protected]"

İçerik uzunluğu

Gönderen En fazla karakter
TEBHOS Pro'su olmayan kullanıcı 2.000
TEBHOS Pro'lu kullanıcı 4.000
Bot 4.000
Webhook (Webhook'u çalıştır) 4.000

4.000 karakteri aşan içerik doğrulamadan 400 INVALID_FORM_BODY ile geçemez; TEBHOS Pro'su olmayan bir kullanıcıdan gelen ve iki sınır arasında kalan içerik ise 400 BAD_REQUEST ile başarısız olur.

Yanıtlar ve iletmeler

Bir yanıt (message_reference.type verilmemiş veya 0, ya da reply_to_id) aynı kanaldaki bir mesajı hedeflemelidir; aksi hâlde istek 400 BAD_REQUEST ile başarısız olur. Oluşturulan mesajın türü REPLY (19) olur ve çözümlenmiş bir referenced_message içerir.

Bir iletme (message_reference.type 1) hem channel_id hem de message_id gerektirir ve içerik, ek veya çıkartma taşımamalıdır (400 BAD_REQUEST). Çağıran kaynak kanalı görüntüleyebilmelidir; var olmayan bir kaynak mesaj 404 döndürür. Oluşturulan mesajın türü DEFAULT olur ve bir message_snapshots girdisi içerir; kaynağın ekleri hedef kanala kopyalanır.

Yavaş mod

rate_limit_per_user değeri sıfır olmayan bir sunucu kanalında her üye, aralık başına bir mesaj gönderebilir. Aralık içindeki bir gönderim, tam saniye cinsinden bir Retry-After başlığı ve ondalıklı saniye cinsinden üst düzey bir retry_after üyesiyle birlikte 400 SLOWMODE_RATE_LIMITED (429 değil) döndürür:

{
  "error": "400 Bad Request",
  "code": "SLOWMODE_RATE_LIMITED",
  "message": "...",
  "retry_after": 4.2
}

Sahip, yöneticiler ve BYPASS_SLOWMODE iznine sahip üyeler muaftır; tek başına MANAGE_MESSAGES veya MANAGE_CHANNELS izni bir üyeyi muaf kılmaz. Özel kanallarda yavaş mod yoktur.

Yan etkiler

İşlem mesajı saklar, referans verilen yüklemeleri bağlar, gönderenin okuma durumunu ilerletir (botlar hariç), kapalı bir DM'i alıcıları için yeniden açar, mesajı arama için dizinler ve kanalı görebilen her oturuma Message Create yayınlar. İçerikteki en fazla 3 bağlantı eşzamansız olarak önizlemelere çözümlenir; SUPPRESS_EMBEDS ayarlanmamışsa her çözümleme bir Message Update yayınlar.

Hız sınırı

channel:message:create kovasında, her kullanıcı ve kanal için 10 saniyede 20 istek.

curl -X POST https://tebhos.com/api/v1/channels/1501314428688998182/messages \
  -H "Authorization: Bot $TEBHOS_BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"content": "Build finished", "embeds": [{"title": "Release 2.4.0", "color": 5793266}]}'
const res = await fetch(
  "https://tebhos.com/api/v1/channels/1501314428688998182/messages",
  {
    method: "POST",
    headers: {
      Authorization: `Bot ${process.env.TEBHOS_BOT_TOKEN}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ content: "Build finished" }),
  },
);
const message = await res.json();
import os, requests

res = requests.post(
    "https://tebhos.com/api/v1/channels/1501314428688998182/messages",
    headers={"Authorization": f"Bot {os.environ['TEBHOS_BOT_TOKEN']}"},
    json={"content": "Build finished"},
)
message = res.json()

Mesajı değiştir

PATCH /channels/{channel_id}/messages/{message_id}

Bir mesajı değiştirir ve güncellenmiş mesaj nesnesini döndürür. Bir Message Update Gateway olayı yayınlar. Kullanıcı oturumlarını ve bot token'larını kabul eder. Gövde JSON veya multipart/form-data olur (Çok parçalı gövde bölümündeki gibi payload_json ile files[n]).

JSON gövdesi

Alan Tür Açıklama
content? string Yeni metin (en fazla 4.000 karakter; TEBHOS Pro olmadan en fazla 2.000). embeds ile birlikte "" metni temizler. İçeriği yalnızca yazar değiştirebilir
flags? integer Yeni mesaj bayrakları; yalnızca gönderilebilir bitler değişir. Bayrakları yazar veya MANAGE_MESSAGES iznine sahip bir üye değiştirebilir
embeds? array[zengin gömme girdisi nesnesi] Mesajın verilmiş gömmelerini değiştirir ([] hepsini kaldırır). Yalnızca yazar; sunucu kanalında EMBED_LINKS gerektirir. Bağlantı önizlemeleri korunur. Görseller attachment://{filename} kullanabilir
attachments? array[object] Yeni ek listesinin tamamı; bkz. Ekleri düzenleme. Ekleri değiştirmeden bırakmak için bu alanı göndermeyin

En az bir alan zorunludur; boş bir content yanında boş olmayan embeds, attachments veya flags gerektirir (aksi hâlde 400 CANNOT_SEND_EMPTY_MESSAGE). Yazar olmayan ve content veya embeds gönderen bir çağıran 403 FORBIDDEN alır.

İçerik değişikliği edited_timestamp değerini ilerletir, bahsetmeleri yeniden hesaplar, bağlantı önizlemelerini yeni içerikteki bağlantıların önizlemeleriyle değiştirir ve mesajı arama için yeniden dizinler. Yalnızca bayrakları veya yalnızca ekleri değiştiren bir istek mesajı düzenlenmiş olarak işaretlemez.

Ekleri düzenleme

attachments listesinin her girdisi şunlardan biridir:

Girdi Etki
{id, title?, description?} Mevcut bir eki korur. id, ekin kimliği veya güncel listedeki konumudur. title ve description saklanan değerlerin yerine geçer (null onları temizler)
{upload_filename, filename?, description?, title?, width?, height?, duration?, waveform?, flags?} Çağıranın bu kanalda Ek yüklemeleri ile yüklediği bir dosyayı ekler. Sunucu kanalında ATTACH_FILES gerektirir; dosya engellenen dosya denetiminden ve boyut sınırından geçer

Listelenmeyen mevcut bir ek mesajdan kaldırılır; [] hepsini kaldırır. En fazla 10 girdi olabilir. Çok parçalı bir istekte id değeri bir dosya sırasına eşit olan girdiler yeni ek olur; dosya gönderildiğinde yeni liste, listelenen mevcut ekler ile dosyalardan oluşur. Eşleşen bir dosyası olmadan bir filename adlandıran girdi 400 INVALID_FORM_BODY (errors[].code NO_FILE_FOR_ATTACHMENT_METADATA) ile başarısız olur.

Yazar olmayan bir üye attachments alanını yalnızca bir sunucu kanalında ve MANAGE_MESSAGES iznine sahipse gönderebilir: ekleri kaldırabilir veya title/description değerlerini değiştirebilir; başka herhangi bir anahtar 400 INVALID_FORM_BODY (errors[].code CANNOT_EDIT_ATTACHMENT_METADATA) ile başarısız olur. İzin olmadan istek 403 CANNOT_EDIT_OTHER_USER_MESSAGE ile başarısız olur.

Durum Koşul
400 INVALID_FORM_BODY (errors[].code FILE_NOT_FOUND) Bir upload_filename bilinmiyor, zaten kullanılmış veya başka bir hesaba ya da kanala ait
400 FILE_SIZE_TOO_LARGE Yeni bir dosya çağıranın boyut sınırını aşıyor
403 CONTENT_BLOCKED Yeni bir dosya engellenen dosya listesinde
403 MISSING_PERMISSIONS ATTACH_FILES olmadan yeni dosyalar

TEBHOS'ta desteklenmez

allowed_mentions bu yol üzerinden değiştirilemez.

Hız sınırı

channel:message:update kovasında, her kullanıcı ve kanal için 10 saniyede 20 istek.

Mesajı sil

DELETE /channels/{channel_id}/messages/{message_id}

Tek bir mesajı siler ve bir message dizesi içeren JSON gövdesiyle 200 döndürür. Bir Message Delete Gateway olayı yayınlar.

Yazar kendi mesajını silebilir. Başka bir kullanıcının mesajını silmek MANAGE_MESSAGES gerektirir (aksi hâlde 403 FORBIDDEN).

Yan etkiler

Mesaj kaldırılır ve aramadan silinir. Message Delete; kanal kimliğini, mesaj kimliğini, silinen içeriği ve yazar kimliğini taşır. Mesaj sabitlenmişse kanalın değişmemiş son sabitleme zaman damgasıyla birlikte Channel Pins Update de yayınlanır.

Hız sınırı

channel:message:delete kovasında, her kullanıcı ve kanal için 10 saniyede 20 istek.

Mesaj ekini sil

DELETE /channels/{channel_id}/messages/{message_id}/attachments/{attachment_id}

Çağıranın kendi mesajından bir eki kaldırır ve 204 döndürür. Kullanıcı oturumlarını ve bot token'larını kabul eder. Bu yolu yalnızca yazar kullanabilir; MANAGE_MESSAGES yeterli değildir (403 MISSING_PERMISSIONS). Çağıran kanalı görüntüleyebilmelidir.

attachment_id, mesaj nesnesindeki ekin id değeridir.

Ek mesajın son ekiyse ve mesajın içeriği, gömmesi veya çıkartması yoksa mesajın tamamı silinir ve Message Delete yayınlanır. Aksi hâlde dosya depolamadan silinir (ve CDN önbellek temizliği için kuyruğa alınır), ek mesajdan kaldırılır, edited_timestamp ilerler ve Message Update yayınlanır.

Durum Koşul
204 Ek (veya mesajın tamamı) silindi
403 MISSING_PERMISSIONS Çağıran yazar değil
404 UNKNOWN_MESSAGE Mesaj bu kanalda yok, hiç eki yok veya bu kimliğe sahip bir eki yok
404 / 403 Çağıran kanala erişemiyor (bkz. Kanal çözümleme)

DELETE /messages/{message_id}/attachments/{attachment_id}, aynı işlemin eski bir TEBHOS biçimidir. Kanalı mesajdan çözümler ve güncellenmiş mesaj nesnesiyle 200, mesajın tamamı silindiğinde ise bir message dizesiyle 200 yanıtı verir.

Hız sınırı

channel:message:delete kovasında, her kullanıcı ve kanal için 10 saniyede 20 istek.

Mesajları toplu sil

POST /channels/{channel_id}/messages/bulk-delete

Tek bir kanaldaki 1-100 mesajı siler ve 204 döndürür. MANAGE_MESSAGES gerektirir. POST /channels/{channel_id}/messages/bulk_delete takma adı aynı şekilde davranır.

JSON gövdesi

Alan Tür Açıklama
message_ids? array[snowflake] Silinecek mesaj kimlikleri (1-100)
messages? array[snowflake] message_ids için takma ad; message_ids yoksa kullanılır

Boş bir liste veya 100'den fazla kimlik 400 BAD_REQUEST ile başarısız olur. Geçerli olmayan veya kanalda hiçbir mesajı adlandırmayan kimlikler atlanır. Her yaştaki mesaj seçilebilir.

Yan etkiler

Eşleşen her mesaj kaldırılır ve aramadan silinir. Kanalı görebilen oturumlara, silinen kimlikleri içeren tek bir Message Delete Bulk yayınlanır.

Hız sınırı

channel:message:bulk_delete kovasında, her kullanıcı ve kanal için 10 saniyede 10 istek.

Kendi mesajlarını toplu sil

POST /channels/{channel_id}/messages/bulk-delete-mine

Çağıranın tek bir kanalda yazdığı her mesajı siler ve 202 döndürür. VIEW_CHANNEL ve sudo kipi gerektirir: bir kullanıcı oturumu son birkaç dakika içinde POST /auth/sudo ile bir sudo yetkisi almış olmalıdır; aksi hâlde istek 403 SUDO_MODE_REQUIRED ile başarısız olur. Bot token'ı sudo kipini her zaman karşılar.

Silme işlemi istek içinde çalışır; dolayısıyla yanıt geldiğinde mesajlar silinmiş olur. Tek bir Message Delete Bulk yayınlanır. Mesajları toplu sil ile aynı kova uygulanır.

Geri yükleme yoktur

Çağıranın kanalda yazdığı her mesaj, yaş sınırı olmadan silinir.

Aynı sudo gereksinimine sahip iki geniş varyant vardır: POST /users/@me/guilds/{guild_id}/messages/bulk-delete-mine, çağıranın bir sunucunun her kanalındaki mesajlarını siler (kullanıcı ve sunucu başına 10 saniyede 10 istek); POST /users/@me/messages/bulk-delete-mine ise çağıranın DM'leri, grup DM'leri ve sunucuları genelinde siler (yalnızca kullanıcı, kullanıcı başına 30 dakikada 5 istek; gövde include_dms, include_group_dms, include_guilds (her birinin varsayılanı true) ile ISO8601 zaman damgası olarak start_date/end_date kabul eder).

Kişisel notları temizle

POST /channels/{channel_id}/messages/purge

Çağıranın kişisel notlar kanalındaki her mesajı siler ve {"deleted_count": N} döndürür. channel_id, çağıranın kullanıcı kimliğine eşit olmalıdır; başka herhangi bir kanal 400 BAD_REQUEST döndürür. Bir şey silindiyse Message Delete Bulk yayınlar.

Hız sınırı

channel:message:purge kovasında, her kullanıcı ve kanal için dakikada 2 istek.

Sabitlenmiş mesajları listele

GET /channels/{channel_id}/pins

En son sabitlenen başta olacak şekilde sabitlenmiş mesajların bir sayfasını döndürür. VIEW_CHANNEL gerektirir. GET /channels/{channel_id}/messages/pins takma adı aynı şekilde davranır.

READ_MESSAGE_HISTORY iznine sahip olmayan bir sunucu çağıranı, yalnızca mesajı geçmiş kesme noktasında veya sonrasında olan sabitlemeleri görür.

Sorgu parametreleri

Alan Tür Açıklama
limit? integer Döndürülecek sabitleme sayısı (en fazla 50, varsayılan 50)
before? snowflake Önceki sayfanın son sabitlenmiş mesajının kimliği

Yanıt gövdesi

Alan Tür Açıklama
items array[mesaj nesnesi] En son sabitlenen başta olacak şekilde sabitlenmiş mesajlar
has_more boolean Başka bir sayfanın olabileceği

Hız sınırı

channel:pins kovasında, her kullanıcı ve kanal için 10 saniyede 20 istek.

Mesajı sabitle

PUT /channels/{channel_id}/pins/{message_id}

Bir DEFAULT veya REPLY mesajını sabitler ve 204 döndürür. Sunucu kanalında PIN_MESSAGES gerektirir; özel kanalda her alıcı sabitleyebilir. Bir sistem mesajı 400 BAD_REQUEST, kanalda olmayan bir mesaj ise 404 döndürür.

Yan etkiler

Mesajın sabitlenme zamanı ve kanalın son sabitleme zaman damgası şimdiye ayarlanır ve sabitlenen mesaja referans veren bir CHANNEL_PINNED_MESSAGE (6) sistem mesajı oluşturulur. TEBHOS, mesaj için Message Update (pinned: true), channel_id, message_id, guild_id ve last_pin_timestamp ile birlikte Channel Pins Update ve sistem mesajı için Message Create yayınlar.

Not

Zaten sabitlenmiş bir mesajı sabitlemek, sabitlenme zamanını yeniler ve bir sistem mesajı daha oluşturur.

Hız sınırı

channel:pins kovasında, her kullanıcı ve kanal için 10 saniyede 20 istek.

Mesajın sabitlemesini kaldır

DELETE /channels/{channel_id}/pins/{message_id}

Bir mesajın sabitlemesini kaldırır ve 204 döndürür. Yetkilendirme Mesajı sabitle ile aynıdır. Message Update (pinned: false) ve kanalın değişmemiş son sabitleme zaman damgasıyla birlikte Channel Pins Update yayınlar. Sistem mesajı oluşturulmaz ve özgün CHANNEL_PINNED_MESSAGE yerinde kalır. İşlem idempotenttir. Sabitlemeyle aynı kovayı kullanır.

Sabitlemeleri onayla

POST /channels/{channel_id}/pins/ack

Kanalın güncel son sabitleme zaman damgasını çağıranın okuma durumuna kaydeder ve 204 döndürür. Yalnızca kullanıcı. İsteğin gövdesi yoktur.

Kanalda hiç sabitleme olmamışsa hiçbir şey yazılmaz ve hiçbir şey yayınlanmaz. Aksi hâlde TEBHOS kanalın son sabitleme zaman damgasını yazar ve çağıranın kendi oturumlarına channel_id ile last_pin_timestamp içeren Channel Pins ACK yayınlar.

Hız sınırı

channel:pins kovasında, her kullanıcı ve kanal için 10 saniyede 20 istek.

Tepki emojisi yol değeri

emoji yol değeri URI ile kodlanır ve şu biçimlerden birini alır:

Biçim Örnek Anlam
Unicode emoji %F0%9F%91%8D Standart bir emoji
name:id party_parrot:1501314428688991234 Özel bir emoji
a:name:id a:party_parrot:1501314428688991234 Hareketli özel bir emoji
<:name:id> / <a:name:id> %3C%3Aparty_parrot%3A1501314428688991234%3E Mesaj belirteci biçiminde özel bir emoji

Tüm özel biçimler saklanan aynı tepkiyi adresler. Ekleme, kendi tepkini kaldırma ve kullanıcının tepkisini kaldırma yolları, isteğe bağlı bir session_id sorgu parametresi (1-64 karakter) kabul eder; bu değer Gateway olayında geri yansıtılır, böylece isteği başlatan oturum kendi yankısını atlayabilir.

Tepki veren kullanıcıları listele

GET /channels/{channel_id}/messages/{message_id}/reactions/{emoji}/users

Bir tepkiyi ekleyen kullanıcıların bir sayfasını döndürür. VIEW_CHANNEL gerektirir; çağıranın geçmiş kesme noktasının dışındaki bir mesaj 404 döndürür.

Sorgu parametreleri

Alan Tür Açıklama
limit? integer Döndürülecek kullanıcı sayısı (1-100, varsayılan 100)
after? snowflake Kimliği bu kullanıcı kimliğinden sonra gelen kullanıcıları döndürür

Yanıt gövdesi

Alan Tür Açıklama
items array[object] Artan kullanıcı kimliği sırasıyla kullanıcılar; her biri {id, name, image_url} biçimindedir ve image_url avatar hash'idir (yoksa boş dize)
has_more boolean Başka bir sayfanın olup olmadığı
next_after ?snowflake Sonraki sayfa için imleç (son kullanıcı kimliği) veya null

Hız sınırı

channel:reactions kovasında, her kullanıcı ve kanal için 10 saniyede 30 istek.

Tepki veren kullanıcıları sayfasız listele

GET /channels/{channel_id}/messages/{message_id}/reactions/{emoji}

{emoji, users} döndürür; burada emoji bir emoji nesnesi, users ise tepkiyi ekleyen her kullanıcıdır ve aynı {id, name, image_url} biçimindedir. Yetkilendirme ve kova Tepki veren kullanıcıları listele ile aynıdır.

Kendi tepkini ekle

PUT /channels/{channel_id}/messages/{message_id}/reactions/{emoji}/@me

Çağıranın tepkisini ekler ve 204 döndürür. Message Reaction Add yayınlar.

  • Mesaj kanala ait olmalıdır (aksi hâlde 404) ve çağıran onu geçmiş kesme noktası kapsamında görüntüleyebilmelidir.
  • Zaman aşımındaki bir üye tepki veremez (403 FORBIDDEN).
  • Bir sunucu kanalında yeni bir emoji grubu oluşturmak ADD_REACTIONS gerektirir; mevcut bir gruba katılmak gerektirmez.
  • Başka bir sunucuya ait özel emojiyle yeni bir grup oluşturmak USE_EXTERNAL_EMOJIS iznini ve TEBHOS Pro'yu gerektirir (403 FORBIDDEN).

İşlem idempotenttir ve her başarılı çağrı olayı yayınlar. Message Reaction Add; channel_id, message_id, user_id, emoji ve verildiyse session_id taşır.

Hız sınırı

channel:reactions kovasında, her kullanıcı ve kanal için 10 saniyede 30 istek.

Kendi tepkini kaldır

DELETE /channels/{channel_id}/messages/{message_id}/reactions/{emoji}/@me

Çağıranın tepkisini kaldırır ve 204 döndürür. Tepki var olsun ya da olmasın Message Reaction Remove yayınlar. Eklemeyle aynı kovayı kullanır.

Başka bir kullanıcının tepkisini kaldır

DELETE /channels/{channel_id}/messages/{message_id}/reactions/{emoji}/{user_id}

Bir kullanıcının tepkisini kaldırır ve 204 döndürür. user_id çağıranın kendisi olsa bile MANAGE_MESSAGES gerektirir. Hedef kullanıcı kimliğiyle birlikte Message Reaction Remove yayınlar. Eklemeyle aynı kovayı kullanır.

Bir emojinin tüm tepkilerini kaldır

DELETE /channels/{channel_id}/messages/{message_id}/reactions/{emoji}

Tek bir emojiye ait her tepkiyi kaldırır ve 204 döndürür. MANAGE_MESSAGES gerektirir. Tek bir Message Reaction Remove Emoji yayınlar. Eklemeyle aynı kovayı kullanır.

Tüm tepkileri kaldır

DELETE /channels/{channel_id}/messages/{message_id}/reactions

Bir mesajdaki her tepkiyi kaldırır ve 204 döndürür. MANAGE_MESSAGES gerektirir. Tek bir Message Reaction Remove All yayınlar. Eklemeyle aynı kovayı kullanır.

Yazıyor göstergesi

POST /channels/{channel_id}/typing

Yazma etkinliğini yayınlar ve 204 döndürür. Sunucu kanalında VIEW_CHANNEL ve SEND_MESSAGES gerektirir ve çağıran zaman aşımında olmamalıdır; özel kanalda yalnızca alıcı erişimi yeterlidir.

channel_id, user_id ve saniye cinsinden bir Unix timestamp ile birlikte Typing Start yayınlar. Hiçbir şey saklanmaz; göstergenin süresini istemciler kendileri doldurur.

Hız sınırı

channel:typing kovasında, her kullanıcı ve kanal için 10 saniyede 20 istek.

Mesajı onayla

POST /channels/{channel_id}/messages/{message_id}/ack

Çağıranın kanaldaki okuma durumunu message_id değerine kadar ilerletir. Yalnızca kullanıcı. TEBHOS ne kanalı ne de mesajı çözümler.

Saklanan bahsetme sayısı 0 değerine sıfırlanır; saklanan eşik değerinin altındaki bir message_id girdiyi değiştirmez. İstek gövdesi yoktur; bahsetme sayısını saklamak veya eşiği geriye taşımak için Okuma durumlarını onayla kullanın.

Yanıt

{"read_states": [read state], "read_state_proto": string} ile 200; bkz. Okuma durumu nesnesi. Çağıranın kendi oturumlarına Message ACK yayınlar.

Hız sınırı

channel:message:ack kovasında, her kullanıcı ve kanal için 10 saniyede 100 istek.

Kanal okuma durumunu temizle

DELETE /channels/{channel_id}/messages/ack

Çağıranın tek bir kanala ait okuma durumu girdisini siler ve 204 döndürür. Yalnızca kullanıcı. Kanal çözümlenmez, işlem idempotenttir ve hiçbir Gateway olayı yayınlanmaz.

Hız sınırı

channel:read_state:delete kovasında, her kullanıcı ve kanal için 10 saniyede 40 istek.