Lägg till knappar
Sätt knappar under vilket kort som helst. En knapp öppnar en länk, ändrar kortet för alla i samma stund som någon trycker, eller talar om för din tjänst att den har tryckts.
Det här kan du göra
- Öppna en länkSkicka folk till en sida, en dashboard eller en pull request.
- Ändra kortet med ett tryckRedigera det, ta bort det, reagera eller svara, direkt från trycket, utan någon egen server.
- Hör varje tryckDin tjänst får veta vem som tryckte på vad, live.
- Kör ett kommandoEn knapp kan utlösa ett av communityns slash-kommandon, med data.
I appen
Någon ringer på: kortet visas
Ett tryck på Öppna grinden: kortet ändras för alla
Ingen server behövs för själva ändringen: stegen sparas med meddelandet. Din grindstyrning hör trycket och öppnar grinden.
Snabbstart
Lägg till en actions-lista
Knappar ligger i
actions, bredvid kortet, i ett inlägg från en webhook, ett svar på ett kommando eller en uppdatering.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älj vad ett tryck gör
En länk, en ändring av kortet eller ett anrop till din tjänst. De tre sorterna finns nedan.
Tre sorters knappar
type avgör vad ett tryck gör.
| Typ | Vad ett tryck gör | Når dig |
|---|---|---|
url:{url} | Öppnar länken. | Nej |
webhook_action | Kör stegen som du har sparat med den, för alla i kanalen. | Ja, på meddelandets stream_url |
trigger:{guid} | Utlöser en av communityns triggers med knappens payload. | Ja, som ett nytt anrop till den triggerns URL |
Ändra kortet med ett tryck
En webhook_action-knapp har en lista med steg i triggers. Vid ett tryck körs de på mssgs-servern, i ordning, och alla i kanalen ser resultatet.
| Steg | Vad det gör, för alla | Fält |
|---|---|---|
update_message | Ersätter kortet och dess knappar. Skicka "actions": [] för att ta bort knapparna. | message_container, actions, content |
remove_message | Raderar meddelandet. | Inga |
add_reaction | Lägger till en reaktion, från medlemmen som tryckte. | emoji |
add_reply | Postar ett svar, från medlemmen som tryckte. | 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:" }
]
}
]
}Hör trycket
Ett meddelande med knappar kommer tillbaka från webhooken med en stream_url. Håll den öppen så kommer varje tryck som en händelse av typen action, med knappens id, den sparade knappen och dess payload, och vem som tryckte:
data: {"type": "action", "message_id": "...", "action_id": "open_gate", "action": {"id": "open_gate", "payload": {"door": "front"}, ...}, "member_guid": "member-guid", "member": {...}, "ts": 1790000000000}Gör det riktiga jobbet, som att öppna grinden, och sätt sedan kortets slutliga läge via callback_url. Hur strömmen och callbacken fungerar står under liveuppdateringar.
Kör ett kommando från en knapp
En trigger:{guid}-knapp utlöser en av communityns triggers, som om någon hade skrivit kommandot, och lämnar över knappens payload. Triggern tar emot:
{
"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.Fält
| Fält | Typ | Vad det gör |
|---|---|---|
type | string | url:{url}, webhook_action eller trigger:{guid}. Krävs. |
text | string | Texten på knappen. Krävs; label fungerar också. |
color | string | Knappens färg, se nedan. |
id | string | För webhook_action: vilken knapp som trycktes. Unikt inom meddelandet. |
payload | object | Din data, som lämnas tillbaka vid ett tryck. |
triggers | array | För webhook_action: stegen som ska köras. |
disabled | boolean | Visar knappen nedtonad, och tryck avvisas. |
Färger
green, blue och purple ritar en fylld, primär knapp. red, orange och yellow ritar en sekundär: använd dem för "Avvisa", "Avbryt" och andra val som kräver eftertanke.
Fel
När du postar ett meddelande med knappar kontrollerar mssgs dem först:
| Kod | Betydelse |
|---|---|
INVALID_ACTIONS_FORMAT | actions är inte en lista med objekt. |
INVALID_ACTION_MISSING_FIELDS | En knapp saknar type eller text. |
DUPLICATE_ACTION_ID | Två knappar har samma id. |
INVALID_TRIGGERS_FORMAT | triggers är inte en lista med steg. |
INVALID_TRIGGER_MISSING_ACTION | Ett steg saknar action. |
INVALID_TRIGGER_ACTION_NOT_ALLOWED | Ett annat steg än de fyra ovan. |
När någon trycker
| Kod | Betydelse |
|---|---|
MESSAGE_NOT_FOUND | Meddelandet har raderats under tiden. |
ACTION_NOT_FOUND | Det finns ingen knapp med det id:t på meddelandet. |
ACTION_DISABLED | Knappen är inaktiverad. |
TRIGGER_NOT_FOUND, TRIGGER_NOT_ACTIVE | Triggern som en knapp pekar på finns inte längre eller är avstängd. |
TRIGGER_NOT_ALLOWED | Medlemmen har ingen roll som får använda den triggern. |
Kommer du från den gamla dokumentationen?
button med ws:send-steg, local:update_message och local:remove_message, previous:success-villkor och expire_in_seconds fungerar inte längre för externa avsändare. Använd webhook_action med stegen ovan: de når alla, inte bara den som tryckte.