Tilføj knapper
Sæt knapper under et hvilket som helst kort. En knap åbner et link, ændrer kortet for alle i det øjeblik, nogen trykker på den, eller fortæller din tjeneste, at der blev trykket.
Det kan du
- Åbn et linkSend folk til en side, et dashboard eller en pull request.
- Ændr kortet med ét trykRedigér det, fjern det, reagér eller svar, direkte fra trykket, uden din egen server.
- Hør hvert trykDin tjeneste får live at vide, hvem der trykkede på hvad.
- Kør en kommandoEn knap kan udløse en af fællesskabets slash-kommandoer, med data.
I appen
Nogen ringer på: kortet dukker op
Et tryk på Åbn porten: kortet ændrer sig for alle
Selve ændringen kræver ingen server: trinnene er gemt sammen med beskeden. Din portstyring hører trykket og åbner porten.
Kom godt i gang
Tilføj en actions-liste
Knapper hører til i
actions, ved siden af kortet, når du poster med en webhook, svarer på en kommando eller sender en opdatering.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ælg, hvad et tryk gør
Et link, en ændring af kortet eller et kald til din tjeneste. De tre slags står nedenfor.
Tre slags knapper
Feltet type afgør, hvad et tryk gør.
| Type | Hvad et tryk gør | Når dig |
|---|---|---|
url:{url} | Åbner linket. | Nej |
webhook_action | Kører de trin, du har gemt sammen med den, for alle i kanalen. | Ja, på beskedens stream_url |
trigger:{guid} | Udløser en af fællesskabets triggere med knappens payload. | Ja, som en ny request til den triggers URL |
Ændr kortet med ét tryk
En webhook_action-knap har en liste med trin i triggers. Ved et tryk kører de på mssgs-serveren, i rækkefølge, og alle i kanalen ser resultatet.
| Trin | Hvad det gør, for alle | Felter |
|---|---|---|
update_message | Erstatter kortet og dets knapper. Send "actions": [] for at fjerne knapperne. | message_container, actions, content |
remove_message | Sletter beskeden. | Ingen |
add_reaction | Tilføjer en reaktion fra det medlem, der trykkede. | emoji |
add_reply | Poster et svar fra det medlem, der trykkede. | 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 trykket
En besked med knapper kommer tilbage fra webhooken med en stream_url. Hold den åben, så ankommer hvert tryk som en hændelse af typen action, med knappens id, den gemte knap og dens payload, og hvem der trykkede:
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 egentlige arbejde, som at åbne porten, og sæt så kortets endelige tilstand gennem callback_url. Hvordan streamen og callbacken virker, står under liveopdateringer.
Kør en kommando fra en knap
En trigger:{guid}-knap udløser en af dit fællesskabs triggere, som om nogen havde skrevet kommandoen, og giver knappens payload videre. Triggeren modtager:
{
"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.Felter
| Felt | Type | Hvad det gør |
|---|---|---|
type | string | url:{url}, webhook_action eller trigger:{guid}. Påkrævet. |
text | string | Teksten på knappen. Påkrævet; label virker også. |
color | string | Knappens farve, se nedenfor. |
id | string | For webhook_action: hvilken knap der blev trykket på. Unik inden for beskeden. |
payload | object | Dine data, som du får tilbage ved et tryk. |
triggers | array | For webhook_action: de trin, der skal køres. |
disabled | boolean | Viser knappen nedtonet, og tryk bliver afvist. |
Farver
green, blue og purple tegner en fyldt, primær knap. red, orange og yellow tegner en sekundær: brug dem til "Afvis", "Annullér" og andre valg, der kræver omtanke.
Fejl
Når du poster en besked med knapper, tjekker mssgs dem først:
| Kode | Betydning |
|---|---|
INVALID_ACTIONS_FORMAT | actions er ikke en liste af objekter. |
INVALID_ACTION_MISSING_FIELDS | En knap har ingen type eller ingen text. |
DUPLICATE_ACTION_ID | To knapper har det samme id. |
INVALID_TRIGGERS_FORMAT | triggers er ikke en liste af trin. |
INVALID_TRIGGER_MISSING_ACTION | Et trin har ingen action. |
INVALID_TRIGGER_ACTION_NOT_ALLOWED | Et andet trin end de fire ovenfor. |
Når nogen trykker
| Kode | Betydning |
|---|---|
MESSAGE_NOT_FOUND | Beskeden er blevet slettet i mellemtiden. |
ACTION_NOT_FOUND | Der er ingen knap med det id på beskeden. |
ACTION_DISABLED | Knappen er deaktiveret. |
TRIGGER_NOT_FOUND, TRIGGER_NOT_ACTIVE | Den trigger, en knap peger på, er væk eller slået fra. |
TRIGGER_NOT_ALLOWED | Medlemmet har ikke en rolle, der må bruge den trigger. |
Kommer du fra den gamle dokumentation?
button med ws:send-trin, local:update_message og local:remove_message, previous:success-betingelser og expire_in_seconds virker ikke længere for afsendere udefra. Brug webhook_action med trinnene ovenfor: de når alle, ikke kun den, der trykkede.