Přidej tlačítka
Dej tlačítka pod jakoukoli kartu. Tlačítko otevře odkaz, změní kartu všem ve chvíli, kdy na něj někdo klepne, nebo dá tvé službě vědět, že ho někdo stiskl.
Co s tím můžeš dělat
- Otevři odkazPošli lidi na stránku, dashboard nebo pull request.
- Změň kartu jedním klepnutímUprav ji, smaž, přidej reakci nebo odpověď, rovnou ze stisku, bez vlastního serveru.
- Zachyť každý stiskTvoje služba živě ví, kdo co stiskl.
- Spusť příkazTlačítko může spustit jeden z příkazů s lomítkem tvé komunity, i s daty.
V aplikaci
Někdo zazvoní: objeví se karta
Klepnutí na Otevřít bránu: karta se změní všem
Samotná změna nepotřebuje žádný server: kroky jsou uložené se zprávou. Tvůj ovladač brány stisk zachytí a bránu otevře.
Rychlý start
Přidej seznam actions
Tlačítka patří do
actions, vedle karty: v příspěvku přes webhook, v odpovědi na příkaz nebo v aktualizaci.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" } ] }deploysVyber, co stisk udělá
Odkaz, změnu karty, nebo volání tvé služby. Všechny tři druhy najdeš níže.
Tři druhy tlačítek
O tom, co stisk udělá, rozhoduje type.
| Typ | Co udělá stisk | Dozvíš se o něm |
|---|---|---|
url:{url} | Otevře odkaz. | Ne |
webhook_action | Provede kroky uložené s tlačítkem, pro všechny v kanálu. | Ano, přes stream_url zprávy |
trigger:{guid} | Spustí jeden z triggerů komunity s payload tlačítka. | Ano, jako nový požadavek na URL toho triggeru |
Změna karty jedním klepnutím
Tlačítko webhook_action nese v triggers seznam kroků. Po stisku se postupně provedou na serveru mssgs a výsledek uvidí všichni v kanálu.
| Krok | Co udělá, pro všechny | Pole |
|---|---|---|
update_message | Nahradí kartu a její tlačítka. Pošli "actions": [] a tlačítka zmizí. | message_container, actions, content |
remove_message | Smaže zprávu. | Žádná |
add_reaction | Přidá reakci za člena, který tlačítko stiskl. | emoji |
add_reply | Zveřejní odpověď za člena, který tlačítko stiskl. | 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:" }
]
}
]
}Zachycení stisku
Zpráva s tlačítky se z webhooku vrátí se stream_url. Nech ho otevřený a každý stisk dorazí jako událost typu action, s id tlačítka, uloženým tlačítkem a jeho payload a s tím, kdo ho stiskl:
data: {"type": "action", "message_id": "...", "action_id": "open_gate", "action": {"id": "open_gate", "payload": {"door": "front"}, ...}, "member_guid": "member-guid", "member": {...}, "ts": 1790000000000}Udělej skutečnou práci, třeba otevři bránu, a pak nastav konečný stav karty přes callback_url. Jak funguje stream a callback, popisují živé aktualizace.
Spuštění příkazu tlačítkem
Tlačítko trigger:{guid} spustí jeden z triggerů tvé komunity, jako by někdo napsal příkaz, a předá mu payload tlačítka. Trigger dostane:
{
"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.Pole
| Pole | Typ | Co dělá |
|---|---|---|
type | string | url:{url}, webhook_action nebo trigger:{guid}. Povinné. |
text | string | Popisek na tlačítku. Povinné; funguje i label. |
color | string | Barva tlačítka, viz níže. |
id | string | U webhook_action: které tlačítko bylo stisknuto. V rámci zprávy jedinečné. |
payload | object | Tvoje data, která se ti při stisku vrátí. |
triggers | array | U webhook_action: kroky, které se mají provést. |
disabled | boolean | Zobrazí tlačítko zašedlé a stisky se odmítnou. |
Barvy
green, blue a purple vykreslí plné, hlavní tlačítko. red, orange a yellow vykreslí vedlejší: použij je pro „Odmítnout“, „Zrušit“ a další volby, se kterými je třeba opatrnosti.
Chyby
Když zveřejníš zprávu s tlačítky, mssgs je nejdřív zkontroluje:
| Kód | Význam |
|---|---|
INVALID_ACTIONS_FORMAT | actions není seznam objektů. |
INVALID_ACTION_MISSING_FIELDS | Tlačítku chybí type nebo text. |
DUPLICATE_ACTION_ID | Dvě tlačítka mají stejné id. |
INVALID_TRIGGERS_FORMAT | triggers není seznam kroků. |
INVALID_TRIGGER_MISSING_ACTION | Kroku chybí action. |
INVALID_TRIGGER_ACTION_NOT_ALLOWED | Jiný krok než čtyři výše uvedené. |
Když někdo stiskne tlačítko
| Kód | Význam |
|---|---|
MESSAGE_NOT_FOUND | Zpráva byla mezitím smazána. |
ACTION_NOT_FOUND | Zpráva nemá tlačítko s tímto id. |
ACTION_DISABLED | Tlačítko je vypnuté. |
TRIGGER_NOT_FOUND, TRIGGER_NOT_ACTIVE | Trigger, na který tlačítko odkazuje, už neexistuje nebo je vypnutý. |
TRIGGER_NOT_ALLOWED | Člen nemá roli, která smí ten trigger používat. |
Přicházíš ze staré dokumentace?
button s kroky ws:send, local:update_message a local:remove_message, podmínky previous:success a expire_in_seconds už pro externí odesílatele nefungují. Použij webhook_action s kroky popsanými výše: dostanou se ke všem, nejen k tomu, kdo tlačítko stiskl.