Knoppen toevoegen
Zet knoppen onder elke kaart. Een knop opent een link, verandert de kaart voor iedereen zodra iemand erop tikt, of laat je service weten dat hij is ingedrukt.
Wat je kunt doen
- Een link openenStuur mensen naar een pagina, een dashboard of een pull request.
- De kaart veranderen met een tikBewerk hem, verwijder hem, reageer of antwoord, direct vanuit de knopdruk, zonder eigen server.
- Elke druk horenJe service hoort live wie wat heeft ingedrukt.
- Een commando uitvoerenEen knop kan een van de slash-commando's van de community activeren, met data.
In de app
Er wordt aangebeld: de kaart verschijnt
Een tik op Poort openen: de kaart verandert voor iedereen
Voor de verandering zelf is geen server nodig: de stappen zijn bij het bericht opgeslagen. Je poortcontroller hoort de druk en opent de poort.
Snel aan de slag
Voeg een actions-lijst toe
Knoppen horen in
actions, naast de kaart, in een post via een webhook, een antwoord op een commando of een update.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" } ] }deploysKies wat een druk doet
Een link, een wijziging aan de kaart, of een aanroep van je service. De drie soorten staan hieronder.
Drie soorten knoppen
Het type bepaalt wat een druk doet.
| Type | Wat een druk doet | Bereikt jou |
|---|---|---|
url:{url} | Opent de link. | Nee |
webhook_action | Voert de stappen uit die je erbij hebt opgeslagen, voor iedereen in het kanaal. | Ja, via de stream_url van het bericht |
trigger:{guid} | Activeert een van de triggers van de community, met de payload van de knop. | Ja, als nieuw request naar de URL van die trigger |
De kaart veranderen met een tik
Een webhook_action-knop heeft een lijst stappen in triggers. Bij een druk draaien die op de server van mssgs, op volgorde, en iedereen in het kanaal ziet het resultaat.
| Stap | Wat hij doet, voor iedereen | Velden |
|---|---|---|
update_message | Vervangt de kaart en zijn knoppen. Stuur "actions": [] om de knoppen weg te halen. | message_container, actions, content |
remove_message | Verwijdert het bericht. | Geen |
add_reaction | Voegt een reactie toe, namens het lid dat drukte. | emoji |
add_reply | Post een antwoord, namens het lid dat drukte. | 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:" }
]
}
]
}De druk horen
Een bericht met knoppen komt van de webhook terug met een stream_url. Houd die open en elke druk komt binnen als event van het type action, met het id van de knop, de opgeslagen knop met zijn payload, en wie er drukte:
data: {"type": "action", "message_id": "...", "action_id": "open_gate", "action": {"id": "open_gate", "payload": {"door": "front"}, ...}, "member_guid": "member-guid", "member": {...}, "ts": 1790000000000}Doe het echte werk, zoals de poort openen, en zet daarna de eindstand van de kaart via callback_url. Hoe de stream en de callback werken lees je bij live-updates.
Een commando uitvoeren vanaf een knop
Een trigger:{guid}-knop activeert een van de triggers van je community, alsof iemand het commando had getypt, en geeft de payload van de knop mee. De trigger ontvangt:
{
"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.Velden
| Veld | Type | Wat het doet |
|---|---|---|
type | string | url:{url}, webhook_action of trigger:{guid}. Verplicht. |
text | string | De tekst op de knop. Verplicht; label werkt ook. |
color | string | De kleur van de knop, zie hieronder. |
id | string | Voor webhook_action: welke knop is ingedrukt. Uniek binnen het bericht. |
payload | object | Jouw data, die je bij een druk terugkrijgt. |
triggers | array | Voor webhook_action: de stappen die draaien. |
disabled | boolean | Toont de knop grijs, en een druk erop wordt geweigerd. |
Kleuren
green, blue en purple geven een gevulde, primaire knop. red, orange en yellow geven een secundaire: gebruik die voor "Afwijzen", "Annuleren" en andere keuzes waar je voorzichtig mee moet zijn.
Fouten
Post je een bericht met knoppen, dan controleert mssgs die eerst:
| Code | Betekenis |
|---|---|
INVALID_ACTIONS_FORMAT | actions is geen lijst van objecten. |
INVALID_ACTION_MISSING_FIELDS | Een knop heeft geen type of geen text. |
DUPLICATE_ACTION_ID | Twee knoppen hebben hetzelfde id. |
INVALID_TRIGGERS_FORMAT | triggers is geen lijst van stappen. |
INVALID_TRIGGER_MISSING_ACTION | Een stap heeft geen action. |
INVALID_TRIGGER_ACTION_NOT_ALLOWED | Een andere stap dan de vier hierboven. |
Als iemand drukt
| Code | Betekenis |
|---|---|
MESSAGE_NOT_FOUND | Het bericht is intussen verwijderd. |
ACTION_NOT_FOUND | Het bericht heeft geen knop met dat id. |
ACTION_DISABLED | De knop is uitgeschakeld. |
TRIGGER_NOT_FOUND, TRIGGER_NOT_ACTIVE | De trigger waar een knop naar wijst, bestaat niet meer of staat uit. |
TRIGGER_NOT_ALLOWED | Het lid heeft geen rol die die trigger mag gebruiken. |
Kom je van de oude docs?
button met ws:send-stappen, local:update_message en local:remove_message, previous:success-voorwaarden en expire_in_seconds werken niet meer voor externe afzenders. Gebruik webhook_action met de stappen hierboven: die bereiken iedereen, niet alleen degene die drukte.