---
title: "Knapper: interaktive beskeder i mssgs"
description: "Sæt knapper under et mssgs-kort: åbn et link, ændr kortet for alle med ét tryk, hør hvert tryk live, eller kør en kommando. Felter, trin, hændelser og fejl."
canonical: https://mss.gs/da/docs/buttons
language: da
---

# 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 link** Send folk til en side, et dashboard eller en pull request.

- **Ændr kortet med ét tryk** Redigér det, fjern det, reagér eller svar, direkte fra trykket, uden din egen server.

- **Hør hvert tryk** Din tjeneste får live at vide, hvem der trykkede på hvad.

- **Kør en kommando** En knap kan udløse en af fællesskabets slash-kommandoer, med data.

I appen

#### Hoveddøren

Nogen ringer på: kortet dukker op

#### Hoveddøren

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](#quick-start)

- [Tre slags](#kinds)

- [Ændr kortet](#steps)

- [Hør trykket](#listen)

- [Kør en kommando](#trigger)

- [Felter](#fields)

- [Fejl](#errors)

## 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](https://mss.gs/da/docs/webhooks), svarer på en [kommando](https://mss.gs/da/docs/commands) eller sender en [opdatering](https://mss.gs/da/docs/live-updates).

```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" }
  ]
}
```

#### Deploy v2.1 til produktion?

- 2 Væ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 |

```json
{
  "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:

```sse
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](https://mss.gs/da/docs/live-updates).

## 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:

```json
{
  "actions": [
    {
      "type": "trigger:5f2c9a1e-trigger-guid",
      "text": "Check status",
      "color": "blue",
      "payload": { "order_id": "12345" }
    }
  ]
}
```

```json
{
  "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=..."
}
```

## 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?

## Byg videre
