Düğme ekle
Herhangi bir kartın altına düğmeler koy. Bir düğme bir bağlantı açar, biri dokunduğu anda kartı herkes için değiştirir ya da servisine basıldığını bildirir.
Neler yapabilirsin
- Bağlantı açİnsanları bir sayfaya, bir panoya ya da bir pull request’e yönlendir.
- Dokununca kartı değiştirKendi sunucun olmadan, doğrudan basıştan kartı düzenle, kaldır, tepki ver ya da yanıtla.
- Her basıştan haberdar olServisin kimin neye bastığını canlı olarak öğrenir.
- Komut çalıştırBir düğme, topluluğun eğik çizgi komutlarından birini verilerle birlikte çalıştırabilir.
Uygulamada
Biri zili çalar: kart belirir
Kapıyı aç düğmesine bir dokunuş: kart herkes için değişir
Değişikliğin kendisi için sunucu gerekmez: adımlar mesajla birlikte saklanır. Kapı kontrol cihazın basışı duyar ve kapıyı açar.
Hızlı başlangıç
Bir actions listesi ekle
Düğmeler, kartın yanında
actionsalanına girer: bir webhook gönderisinde, bir komut yanıtında ya da bir güncellemede.json{ "message_container": { "color": "yellow", "title": "Deploy v2.1 to production?", "description": "Requested by maya." }, "actions": [ { "type": "url:https://ci.example.com/deploys/218", "text": "View changes", "color": "blue" } ] }deploysBasınca ne olacağını seç
Bir bağlantı, kartta bir değişiklik ya da servisine bir çağrı. Üç türü aşağıda bulabilirsin.
Üç düğme türü
Basınca ne olacağına type karar verir.
| Tür | Basınca ne olur | Sana ulaşır mı |
|---|---|---|
url:{url} | Bağlantıyı açar. | Hayır |
webhook_action | Onunla birlikte sakladığın adımları kanaldaki herkes için çalıştırır. | Evet, mesajın stream_url adresinde |
trigger:{guid} | Topluluğun tetikleyicilerinden birini düğmenin payload verisiyle çalıştırır. | Evet, o tetikleyicinin URL’sine yeni bir istek olarak |
Dokununca kartı değiştir
Bir webhook_action düğmesi triggers içinde bir adım listesi taşır. Basıldığında bu adımlar mssgs sunucusunda sırayla çalışır ve kanaldaki herkes sonucu görür.
| Adım | Herkes için ne yapar | Alanlar |
|---|---|---|
update_message | Kartı ve düğmelerini değiştirir. Düğmeleri kaldırmak için "actions": [] gönder. | message_container, actions, content |
remove_message | Mesajı siler. | Yok |
add_reaction | Basan üyenin adına bir tepki ekler. | emoji |
add_reply | Basan üyenin adına bir yanıt gönderir. | content |
{
"message_container": { "color": "yellow", "title": "Front door", "description": "Someone rang the bell." },
"actions": [
{
"type": "webhook_action",
"id": "open_gate",
"text": "Open gate",
"color": "green",
"payload": { "door": "front" },
"triggers": [
{
"action": "update_message",
"message_container": { "color": "blue", "title": "Front door", "description": "Opening…" },
"actions": []
},
{ "action": "add_reaction", "emoji": ":white_check_mark:" }
]
}
]
}Basışları dinle
Düğmeli bir mesaj webhook’tan bir stream_url ile döner. Onu açık tut; her basış action türünde bir olay olarak gelir: düğmenin id’si, saklanan düğme ve onun payload verisi, bir de basan kişi:
data: {"type": "action", "message_id": "...", "action_id": "open_gate", "action": {"id": "open_gate", "payload": {"door": "front"}, ...}, "member_guid": "member-guid", "member": {...}, "ts": 1790000000000}Asıl işi yap, örneğin kapıyı aç, sonra kartın son halini callback_url üzerinden ayarla. Akışın ve callback’in nasıl çalıştığı canlı güncellemeler sayfasında.
Düğmeyle komut çalıştır
Bir trigger:{guid} düğmesi, sanki biri komutu yazmış gibi topluluğunun tetikleyicilerinden birini çalıştırır ve düğmenin payload verisini iletir. Tetikleyiciye şu gelir:
{
"actions": [
{
"type": "trigger:5f2c9a1e-trigger-guid",
"text": "Check status",
"color": "blue",
"payload": { "order_id": "12345" }
}
]
}{
"trigger_match": "/status",
"message": {
"content": "[Action Triggered]",
"member_guid": "member-guid",
"is_action_button": true,
"action_payload": { "order_id": "12345" }
},
"callback_url": "https://mss.gs/api/v1/trigger-callback/...",
"stream_url": "https://mss.gs/api/v1/instant/...?token=..."
}payload içine koy.Alanlar
| Alan | Tür | Ne yapar |
|---|---|---|
type | string | url:{url}, webhook_action ya da trigger:{guid}. Zorunlu. |
text | string | Düğmenin üzerindeki etiket. Zorunlu; label da çalışır. |
color | string | Düğmenin rengi, aşağıya bak. |
id | string | webhook_action için: hangi düğmeye basıldığı. Mesaj içinde benzersiz olmalı. |
payload | object | Senin verin, basıldığında sana geri verilir. |
triggers | array | webhook_action için: çalıştırılacak adımlar. |
disabled | boolean | Düğmeyi soluk gösterir ve basışlar reddedilir. |
Renkler
green, blue ve purple dolu, birincil bir düğme çizer. red, orange ve yellow ikincil bir düğme çizer: bunları “Reddet”, “İptal” ve dikkat isteyen diğer seçenekler için kullan.
Hatalar
Düğmeli bir mesaj gönderdiğinde mssgs önce düğmeleri kontrol eder:
| Kod | Anlamı |
|---|---|
INVALID_ACTIONS_FORMAT | actions bir nesne listesi değil. |
INVALID_ACTION_MISSING_FIELDS | Bir düğmenin type ya da text alanı yok. |
DUPLICATE_ACTION_ID | İki düğme aynı id değerini kullanıyor. |
INVALID_TRIGGERS_FORMAT | triggers bir adım listesi değil. |
INVALID_TRIGGER_MISSING_ACTION | Bir adımın action alanı yok. |
INVALID_TRIGGER_ACTION_NOT_ALLOWED | Yukarıdaki dört adımdan farklı bir adım. |
Biri bastığında
| Kod | Anlamı |
|---|---|
MESSAGE_NOT_FOUND | Mesaj bu arada silinmiş. |
ACTION_NOT_FOUND | Mesajda bu id’ye sahip bir düğme yok. |
ACTION_DISABLED | Düğme devre dışı. |
TRIGGER_NOT_FOUND, TRIGGER_NOT_ACTIVE | Düğmenin gösterdiği tetikleyici artık yok ya da kapatılmış. |
TRIGGER_NOT_ALLOWED | Üyenin o tetikleyiciyi kullanabilen bir rolü yok. |
Eski belgelerden mi geliyorsun?
ws:send, local:update_message ve local:remove_message adımlarına sahip button türündeki düğmeler, previous:success koşulları ve expire_in_seconds artık dışarıdan gönderenler için çalışmıyor. Bunların yerine yukarıdaki adımlarla webhook_action kullan: bu adımlar yalnızca basan kişiye değil, herkese ulaşır.