Adj hozzá gombokat
Tegyél gombokat bármelyik kártya alá. Egy gomb megnyit egy linket, mindenkinek módosítja a kártyát abban a pillanatban, amikor valaki rákoppint, vagy jelzi a szolgáltatásodnak, hogy megnyomták.
Mire használhatod
- Nyiss meg egy linketKüldd az embereket egy oldalra, egy irányítópultra vagy egy pull requesthez.
- Módosítsd a kártyát egy koppintássalSzerkeszd, töröld, reagálj vagy válaszolj közvetlenül a gombnyomásból, saját szerver nélkül.
- Értesülj minden gombnyomásrólA szolgáltatásod élőben megtudja, ki mit nyomott meg.
- Futtass egy parancsotEgy gomb elindíthatja a közösség valamelyik perjeles parancsát, adatokkal együtt.
Az alkalmazásban
Valaki csenget: megjelenik a kártya
Egy koppintás a Kapu nyitása gombra: a kártya mindenkinek megváltozik
Magához a változáshoz nem kell szerver: a lépések az üzenettel együtt vannak tárolva. A kapuvezérlőd értesül a gombnyomásról, és kinyitja a kaput.
Gyors kezdés
Adj hozzá egy actions listát
A gombok az
actionsmezőbe kerülnek, a kártya mellé: egy webhookos üzenetben, egy parancsra adott válaszban vagy egy frissítésben.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" } ] }deploysVálaszd ki, mit tegyen egy gombnyomás
Megnyithat egy linket, módosíthatja a kártyát, vagy meghívhatja a szolgáltatásodat. A három típust lent találod.
Háromféle gomb
A type dönti el, mit tesz egy gombnyomás.
| Típus | Mit tesz egy gombnyomás | Eljut hozzád? |
|---|---|---|
url:{url} | Megnyitja a linket. | Nem |
webhook_action | Lefuttatja a vele együtt tárolt lépéseket, a csatornában mindenkinek. | Igen, az üzenet stream_url címén |
trigger:{guid} | Elindítja a közösség valamelyik triggerét a gomb payload értékével. | Igen, új kérésként az adott trigger URL-jére |
A kártya módosítása egy koppintással
Egy webhook_action gomb lépések listáját hordozza a triggers mezőben. Gombnyomáskor ezek sorban lefutnak az mssgs szerverén, és az eredményt a csatornában mindenki látja.
| Lépés | Mit tesz, mindenkinek | Mezők |
|---|---|---|
update_message | Lecseréli a kártyát és a gombjait. Küldj "actions": [] értéket, ha el akarod tüntetni a gombokat. | message_container, actions, content |
remove_message | Törli az üzenetet. | Nincs |
add_reaction | Reakciót ad hozzá a gombot megnyomó tag nevében. | emoji |
add_reply | Választ küld a gombot megnyomó tag nevében. | 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:" }
]
}
]
}Gombnyomások fogadása
A gombos üzenetre a webhook egy stream_url címmel válaszol. Tartsd nyitva, és minden gombnyomás action típusú eseményként érkezik, a gomb azonosítójával, a tárolt gombbal és annak payload értékével, valamint azzal, hogy ki nyomta meg:
data: {"type": "action", "message_id": "...", "action_id": "open_gate", "action": {"id": "open_gate", "payload": {"door": "front"}, ...}, "member_guid": "member-guid", "member": {...}, "ts": 1790000000000}Végezd el a tényleges munkát, például nyisd ki a kaput, majd állítsd be a kártya végső állapotát a callback_url címen keresztül. A stream és a callback működését az élő frissítések oldal írja le.
Parancs futtatása gombbal
Egy trigger:{guid} gomb elindítja a közösséged valamelyik triggerét, mintha valaki begépelte volna a parancsot, és átadja a gomb payload értékét. A trigger ezt kapja:
{
"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 mezőbe, amire szükséged van.Mezők
| Mező | Típus | Mit csinál |
|---|---|---|
type | string | url:{url}, webhook_action vagy trigger:{guid}. Kötelező. |
text | string | A gomb felirata. Kötelező; a label is működik. |
color | string | A gomb színe, lásd lejjebb. |
id | string | webhook_action esetén: melyik gombot nyomták meg. Az üzeneten belül egyedi. |
payload | object | A saját adataid, gombnyomáskor visszakapod őket. |
triggers | array | webhook_action esetén: a lefuttatandó lépések. |
disabled | boolean | Szürkén jeleníti meg a gombot, a gombnyomásokat pedig elutasítja. |
Színek
A green, a blue és a purple teli, elsődleges gombot rajzol. A red, az orange és a yellow másodlagosat: ezeket használd az „Elutasítás”, a „Mégse” és más óvatos választások gombjaihoz.
Hibák
Amikor gombos üzenetet küldesz, az mssgs először ellenőrzi a gombokat:
| Kód | Jelentés |
|---|---|
INVALID_ACTIONS_FORMAT | Az actions nem objektumok listája. |
INVALID_ACTION_MISSING_FIELDS | Egy gombnak nincs type vagy text mezője. |
DUPLICATE_ACTION_ID | Két gombnak ugyanaz az id értéke. |
INVALID_TRIGGERS_FORMAT | A triggers nem lépések listája. |
INVALID_TRIGGER_MISSING_ACTION | Egy lépésnek nincs action mezője. |
INVALID_TRIGGER_ACTION_NOT_ALLOWED | A fenti négytől eltérő lépés. |
Amikor valaki megnyomja
| Kód | Jelentés |
|---|---|
MESSAGE_NOT_FOUND | Az üzenetet időközben törölték. |
ACTION_NOT_FOUND | Az üzeneten nincs ilyen azonosítójú gomb. |
ACTION_DISABLED | A gomb le van tiltva. |
TRIGGER_NOT_FOUND, TRIGGER_NOT_ACTIVE | A trigger, amelyre a gomb mutat, már nem létezik, vagy ki van kapcsolva. |
TRIGGER_NOT_ALLOWED | A tagnak nincs olyan szerepköre, amely használhatja ezt a triggert. |
A régi dokumentációból jössz?
button típusú gombok ws:send, local:update_message és local:remove_message lépésekkel, a previous:success feltételek és az expire_in_seconds már nem működnek külső küldőknél. Használd a webhook_action típust a fenti lépésekkel: ezek mindenkihez eljutnak, nem csak ahhoz, aki megnyomta a gombot.