Etkileşimler
Botun, bileşenine basılmasına verdiği yanıt. Bu rotalar etkileşim token'ının yanında botun token'ını da ister.
Etkileşime yanıt ver
/interactions/{interaction_id}/{interaction_token}/callback Basmaya ya da komut çalıştırmaya verilen ilk yanıt, 3 saniye içinde gelmelidir; bir etkileşim bir yanıt alır. Mesaj yanıtlarından komut çalıştırma yalnızca type 4 ve 5 alır: güncellenecek mesajı yoktur. type 4 yeni mesaj yazar, 5 PATCH @original ile doldurulacak bir "düşünüyor" mesajı (flags 128) yazar, 6 yalnızca onaylar ve izin istemez, 7 basılan mesajı günceller, göndermediğin alan kalır. Reddedilen yanıt hakkı harcamaz. Basan kişiye başarı bildirilir. 4, 5 ve 7 {"message": ...} ile 200, 6 ise 204 döner. Yavaş mod işlemez; otomatik moderasyon ve ortak tavanlar işler. type 5, data içinden yalnızca flags'i okur; type 6 data'yı yok sayar. type 4 ya da 5 ile flags 64, yanıtı yalnızca basan kişiye gösterir ve kimliği etkileşimin kimliğidir; ephemeral mesaja basıldığında type 7 o mesajı bütünüyle değiştirir. Otomatik tamamlama (type 4) yalnızca data.choices ile type 8 alır; 204 döner, seçenekler yalnızca yazan kişiye gider ve token'ı takip mesajı ya da düzenleme almaz. Type 8 ve ephemeral yanıtlar ortak yazma tavanına sayılmaz: yalnızca herkesin gördüğü 4, 5 ve 7 sayılır. Komut çalıştırma ya da basma (otomatik tamamlama ve gönderilen form değil) bunun yerine data {custom_id, title, components} ile type 9 alabilir: kişiye form açılır, 204 döner, hiçbir şey yazmaz ve yazma tavanına sayılmaz. Formu açmak tek yanıttır; önce 5 verip sonra açamazsın. Kişinin gönderdiği yeni bir etkileşim (type 5) olarak gelir; o 4 ya da 5 alır, 6 ya da 7'yi yalnızca form bir mesajın butonundan açıldıysa alır. Etkileşim adresi olan uygulama etkileşimi orada alır ve aynı yanıtı o isteğin 200 gövdesi olarak verebilir; nasıl yapıldığını HTTP teslim rehberi anlatır.
- Kimlik
- Bot token'ı (bir kişinin oturumu da olur)
- İzinler
- SendMessages
- Hız sınırı
- interaction 50 istek / 1 sn
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
interaction_idzorunlu | string | Adreste INTERACTION_CREATE olayının id'si. |
interaction_tokenzorunlu | string | Adreste Aynı olayın token'ı. Gizlidir, 15 dakika geçerlidir. |
Gövde alanları
| Ad | Tür | Açıklama |
|---|---|---|
typezorunlu | integer | 4 yeni mesaj, 5 sonradan doldurulacak "düşünüyor" mesajı, 6 sessiz onay, 7 basılan mesajı güncelleme. 8 otomatik tamamlamanın seçenekleri; otomatik tamamlama yalnızca 8 alır. 9 form açma; komut çalıştırmaya ya da basmaya ilk yanıt olarak. 4, 5, 6, 7, 8, 9 |
data | object | Yanıtın gösterdiği şey. Yeni mesajda metin ya da embed zorunludur. |
data.content | string | ≤ 2000 |
data.embeds | Embed[] | Yalnızca botlar için; kişi gönderirse |
data.components | MessageComponent[] | Yalnızca botlar için. Yalnızca bileşenli mesaj reddedilir: content, embed veya dosya gerekir. type 9'da formun alanları: 1-5 eylem satırı, her biri bir metin girişi (4) ya da etiketli bir menü taşır. ≤ 5 |
data.allowed_mentions | object | |
data.allowed_mentions.replied_user | boolean | |
data.allowed_mentions.parse | string[] | Yalnızca botlar için. Metindeki hangi etiket türlerinin bildirim göndereceği. parse, users veya roles gönderilirse yalnızca listelenenler bildirim gönderir; varsayılan için üçünü de yazma. |
data.allowed_mentions.users | ID[] | Yalnızca botlar için. parse içinde users yokken de bildirim gönderen kullanıcılar. parse içindeki users ile birlikte yazılamaz. En çok 100. ≤ 100 |
data.allowed_mentions.roles | ID[] | Yalnızca botlar için. parse içinde roles yokken de bildirim gönderen roller. parse içindeki roles ile birlikte yazılamaz. En çok 100. ≤ 100 |
data.flags | integer | 0 ya da yalnızca basan kişinin göreceği ephemeral yanıt için 64. Başka değer reddedilir. |
data.choices | OptionChoice[] | Yalnızca type 8'de, orada zorunludur ve yanında mesajın başka alanı olmaz: en çok 25 öneri, her değer odaktaki seçeneğin türündedir. Boş liste hiçbir şeyin eşleşmediğini söyler. Kişi onları kendi dilinde görür ( |
data.custom_id | string | Yalnızca type 9'da, orada zorunludur: formun kimliği, kişinin gönderdiğiyle geri gelir. ≤ 100 |
data.title | string | Yalnızca type 9'da, orada zorunludur: formun başlığı. Otomatik moderasyon onu, etiketleri ve ön doldurulan değerleri okur. Kişi her formun altında kaldıramayacağın bir satır görür: form botuna gider, içine asla şifre ya da doğrulama kodu yazmamalıdır. 1–45 |
Örnek istek
curl -X POST "https://noluyo.net/api/v1/interactions/111600000000000400/$INTERACTION_TOKEN/callback" \
-H "Authorization: Bot $BOT_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"type":4,"data":{"content":"Kaydın alındı."}}'Örnek gövde
{
"type": 4,
"data": {
"content": "Kaydın alındı."
}
}Örnek yanıt
200 Başarılı
{
"message": {
"id": "111600000000000000",
"type": 0,
"channel_id": "111500000000000100",
"guild_id": "111500000000000000",
"author": {
"id": "111540000000000001",
"username": "ornek_bot",
"display_name": "Örnek Bot",
"avatar": null,
"cosmetics": null,
"bot": true
},
"content": "Kaydın alındı.",
"timestamp": "2026-11-04T22:58:33.427Z",
"edited_timestamp": null,
"attachments": [],
"mentions": [],
"mention_roles": [],
"mention_everyone": false,
"pinned": false,
"nonce": "istek-1",
"application_id": "111540000000000000",
"interaction": {
"id": "111600000000000400",
"type": 3,
"user": {
"id": "111540000000000009",
"username": "ayse",
"display_name": null,
"avatar": null,
"cosmetics": null
}
}
}
}Hatalar
Takip mesajı gönder
/interactions/{interaction_id}/{interaction_token}/messages Yanıtlanmış bir etkileşim için bir mesaj daha yazar; basmadan sonra 15 dakika boyunca, etkileşim başına en çok 5 tane. Dosyalar, mesaj göndermedeki gibi multipart/form-data ve AttachFiles ile gider. flags 64 onu yalnızca basan kişiye gösterir; dosya almaz.
- Kimlik
- Bot token'ı (bir kişinin oturumu da olur)
- İzinler
- SendMessagesAttachFilesBirden çok izin varsa bazıları yalnızca belirli durumlarda gerekir; yukarıdaki açıklamaya bak.
- Hız sınırı
- interaction 50 istek / 1 sn
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
interaction_idzorunlu | string | Adreste INTERACTION_CREATE olayının id'si. |
interaction_tokenzorunlu | string | Adreste Aynı olayın token'ı. Gizlidir, 15 dakika geçerlidir. |
Gövde alanları
| Ad | Tür | Açıklama |
|---|---|---|
content | string | ≤ 2000 |
embeds | Embed[] | Yalnızca botlar için; kişi gönderirse |
components | MessageComponent[] | Yalnızca botlar için. Yalnızca bileşenli mesaj reddedilir: content, embed veya dosya gerekir. type 9'da formun alanları: 1-5 eylem satırı, her biri bir metin girişi (4) ya da etiketli bir menü taşır. ≤ 5 |
allowed_mentions | object | |
allowed_mentions.replied_user | boolean | |
allowed_mentions.parse | string[] | Yalnızca botlar için. Metindeki hangi etiket türlerinin bildirim göndereceği. parse, users veya roles gönderilirse yalnızca listelenenler bildirim gönderir; varsayılan için üçünü de yazma. |
allowed_mentions.users | ID[] | Yalnızca botlar için. parse içinde users yokken de bildirim gönderen kullanıcılar. parse içindeki users ile birlikte yazılamaz. En çok 100. ≤ 100 |
allowed_mentions.roles | ID[] | Yalnızca botlar için. parse içinde roles yokken de bildirim gönderen roller. parse içindeki roles ile birlikte yazılamaz. En çok 100. ≤ 100 |
flags | integer | 0 ya da yalnızca basan kişinin göreceği ephemeral yanıt için 64. Başka değer reddedilir. |
choices | OptionChoice[] | Yalnızca type 8'de, orada zorunludur ve yanında mesajın başka alanı olmaz: en çok 25 öneri, her değer odaktaki seçeneğin türündedir. Boş liste hiçbir şeyin eşleşmediğini söyler. Kişi onları kendi dilinde görür ( |
custom_id | string | Yalnızca type 9'da, orada zorunludur: formun kimliği, kişinin gönderdiğiyle geri gelir. ≤ 100 |
title | string | Yalnızca type 9'da, orada zorunludur: formun başlığı. Otomatik moderasyon onu, etiketleri ve ön doldurulan değerleri okur. Kişi her formun altında kaldıramayacağın bir satır görür: form botuna gider, içine asla şifre ya da doğrulama kodu yazmamalıdır. 1–45 |
Örnek istek
curl -X POST "https://noluyo.net/api/v1/interactions/111600000000000400/$INTERACTION_TOKEN/messages" \
-H "Authorization: Bot $BOT_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"content":"Bir şey daha"}'Örnek gövde
{
"content": "Bir şey daha"
}Örnek yanıt
200 Başarılı
{
"id": "111600000000000000",
"type": 0,
"channel_id": "111500000000000100",
"guild_id": "111500000000000000",
"author": {
"id": "111540000000000001",
"username": "ornek_bot",
"display_name": "Örnek Bot",
"avatar": null,
"cosmetics": null,
"bot": true
},
"content": "Kaydın alındı.",
"timestamp": "2026-11-04T22:58:33.427Z",
"edited_timestamp": null,
"attachments": [],
"mentions": [],
"mention_roles": [],
"mention_everyone": false,
"pinned": false,
"nonce": "istek-1",
"application_id": "111540000000000000",
"interaction": {
"id": "111600000000000400",
"type": 3,
"user": {
"id": "111540000000000009",
"username": "ayse",
"display_name": null,
"avatar": null,
"cosmetics": null
}
}
}Hatalar
Etkileşimin mesajını düzenle
/interactions/{interaction_id}/{interaction_token}/messages/{message_id} Bu etkileşimin bir mesajını düzenler: @original type 4 veya 5 yanıtıdır, takip mesajı kendi kimliğiyle bulunur. Göndermediğin alan kalır. "Düşünüyor" mesajını doldurmak flags 128'i siler, düzenlendi işareti koymaz, içindeki etiket de bildirim göndermez. Satırı olmayan kimlik ephemeral mesaj sayılır, yanıtın satırı yoksa @original da: 200 döner, yalnızca basan kişiye gider, göndermediğin alan gider. Hiç gönderilmemiş kimliği tutan istemci olmadığından type 6 ya da 7 sonrası ekranda bir şey değişmez. Ephemeral düzenleme etkileşim başına 5 saniyede en çok 5 kezdir.
- Kimlik
- Bot token'ı (bir kişinin oturumu da olur)
- İzinler
- SendMessages
- Hız sınırı
- interaction 50 istek / 1 sn
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
interaction_idzorunlu | string | Adreste INTERACTION_CREATE olayının id'si. |
interaction_tokenzorunlu | string | Adreste Aynı olayın token'ı. Gizlidir, 15 dakika geçerlidir. |
message_idzorunlu | string | Adreste Bu etkileşimin bir mesajı ya da type 4 veya 5 yanıtı için @original. |
Gövde alanları
| Ad | Tür | Açıklama |
|---|---|---|
content | string | ≤ 2000 |
embeds | Embed[] | Yalnızca botlar için. Embed'lerin yerine geçer. attachment:// yalnızca mesajın var olan dosyalarına bakar; yeni dosya yeni mesajla gelir. ≤ 10 |
components | MessageComponent[] | Yalnızca botlar için. Satırların yerine geçer. Yalnızca bu değişirse mesaj düzenlendi sayılmaz. ≤ 5 |
allowed_mentions | object | |
allowed_mentions.replied_user | boolean | |
allowed_mentions.parse | string[] | Yalnızca botlar için. Metindeki hangi etiket türlerinin bildirim göndereceği. parse, users veya roles gönderilirse yalnızca listelenenler bildirim gönderir; varsayılan için üçünü de yazma. |
allowed_mentions.users | ID[] | Yalnızca botlar için. parse içinde users yokken de bildirim gönderen kullanıcılar. parse içindeki users ile birlikte yazılamaz. En çok 100. ≤ 100 |
allowed_mentions.roles | ID[] | Yalnızca botlar için. parse içinde roles yokken de bildirim gönderen roller. parse içindeki roles ile birlikte yazılamaz. En çok 100. ≤ 100 |
Örnek istek
curl -X PATCH "https://noluyo.net/api/v1/interactions/111600000000000400/$INTERACTION_TOKEN/messages/@original" \
-H "Authorization: Bot $BOT_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"content":"Rapor hazır."}'Örnek gövde
{
"content": "Rapor hazır."
}Örnek yanıt
200 Başarılı
{
"id": "111600000000000000",
"type": 0,
"channel_id": "111500000000000100",
"guild_id": "111500000000000000",
"author": {
"id": "111540000000000001",
"username": "ornek_bot",
"display_name": "Örnek Bot",
"avatar": null,
"cosmetics": null,
"bot": true
},
"content": "Kaydın alındı.",
"timestamp": "2026-11-04T22:58:33.427Z",
"edited_timestamp": null,
"attachments": [],
"mentions": [],
"mention_roles": [],
"mention_everyone": false,
"pinned": false,
"nonce": "istek-1",
"application_id": "111540000000000000",
"interaction": {
"id": "111600000000000400",
"type": 3,
"user": {
"id": "111540000000000009",
"username": "ayse",
"display_name": null,
"avatar": null,
"cosmetics": null
}
}
}Hatalar
Etkileşimin mesajını sil
/interactions/{interaction_id}/{interaction_token}/messages/{message_id} Bu etkileşimin bir mesajını siler; PATCH hangilerine ulaşıyorsa onlara. Kendi mesajların gibi izin istemez. Ephemeral mesaj basan kişinin ekranlarından gider.
- Kimlik
- Bot token'ı (bir kişinin oturumu da olur)
- Hız sınırı
- interaction 50 istek / 1 sn
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
interaction_idzorunlu | string | Adreste INTERACTION_CREATE olayının id'si. |
interaction_tokenzorunlu | string | Adreste Aynı olayın token'ı. Gizlidir, 15 dakika geçerlidir. |
message_idzorunlu | string | Adreste Bu etkileşimin bir mesajı ya da type 4 veya 5 yanıtı için @original. |
Örnek istek
curl -X DELETE "https://noluyo.net/api/v1/interactions/111600000000000400/$INTERACTION_TOKEN/messages/@original" \
-H "Authorization: Bot $BOT_TOKEN"Örnek yanıt
204 Başarılı; yanıtın gövdesi yok.