---
title: "Knappar: interaktiva meddelanden i mssgs"
description: "Sätt knappar under ett mssgs-kort: öppna en länk, ändra kortet för alla med ett tryck, hör varje tryck live eller kör ett annat kommando. Fält, steg och fel."
canonical: https://mss.gs/sv/docs/buttons
language: sv
---

# 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änk** Skicka folk till en sida, en dashboard eller en pull request.

- **Ändra kortet med ett tryck** Redigera det, ta bort det, reagera eller svara, direkt från trycket, utan någon egen server.

- **Hör varje tryck** Din tjänst får veta vem som tryckte på vad, live.

- **Kör ett kommando** En knapp kan utlösa ett av communityns slash-kommandon, med data.

I appen

#### Ytterdörren

Någon ringer på: kortet visas

#### Ytterdörren

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

- [Tre sorter](#kinds)

- [Ändra kortet](#steps)

- [Hör trycket](#listen)

- [Kör ett kommando](#trigger)

- [Fält](#fields)

- [Fel](#errors)

## Snabbstart

### Lägg till en actions-lista

Knappar ligger i actions , bredvid kortet, i ett inlägg från en [webhook](https://mss.gs/sv/docs/webhooks), ett svar på ett [kommando](https://mss.gs/sv/docs/commands) eller en [uppdatering](https://mss.gs/sv/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" }
  ]
}
```

#### Deploya v2.1 till produktion?

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

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

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

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

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

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

## Bygg vidare
