---
title: "Przyciski: interaktywne wiadomości w mssgs"
description: "Przyciski pod kartą mssgs: link, zmiana karty dla wszystkich jednym dotknięciem, każde naciśnięcie na żywo albo inna komenda. Pola, kroki, zdarzenia i błędy."
canonical: https://docs.mss.gs/pl/buttons
language: pl
---

# Dodaj przyciski

Umieść przyciski pod dowolną kartą. Przycisk otwiera link, zmienia kartę dla wszystkich w chwili, gdy ktoś go dotknie, albo informuje twoją usługę, że został naciśnięty.

## Co możesz z tym zrobić

- **Otwórz link** Kieruj ludzi na stronę, dashboard albo pull request.

- **Zmień kartę jednym dotknięciem** Edytuj ją, usuń, zareaguj albo odpowiedz, prosto z naciśnięcia, bez własnego serwera.

- **Odbieraj każde naciśnięcie** Twoja usługa na żywo dowiaduje się, kto co nacisnął.

- **Uruchom komendę** Przycisk może uruchomić jedną z komend z ukośnikiem społeczności, z danymi.

W aplikacji

#### Drzwi wejściowe

Ktoś dzwoni: pojawia się karta

#### Drzwi wejściowe

Dotknięcie Otwórz bramę: karta zmienia się dla wszystkich

Sama zmiana nie wymaga serwera: kroki są zapisane razem z wiadomością. Twój sterownik bramy odbiera naciśnięcie i otwiera bramę.

- [Szybki start](#quick-start)

- [Trzy rodzaje](#kinds)

- [Zmiana karty](#steps)

- [Odbieranie naciśnięć](#listen)

- [Uruchamianie komendy](#trigger)

- [Pola](#fields)

- [Błędy](#errors)

## Szybki start

### Dodaj listę actions

Przyciski trafiają do actions , obok karty: w poście z [webhooka](https://docs.mss.gs/pl/webhooks), w odpowiedzi na [komendę](https://docs.mss.gs/pl/commands) albo w [aktualizacji](https://docs.mss.gs/pl/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" }
  ]
}
```

#### Wdrożyć v2.1 na produkcję?

- 2 Wybierz, co robi naciśnięcie Link, zmiana karty albo wywołanie twojej usługi. Trzy rodzaje opisujemy niżej.

## Trzy rodzaje przycisków

O tym, co robi naciśnięcie, decyduje type .

| Typ | Co robi naciśnięcie | Czy do ciebie dociera |
| --- | --- | --- |
| url:{url} | Otwiera link. | Nie |
| webhook_action | Wykonuje zapisane z nim kroki, dla wszystkich na kanale. | Tak, na stream_url wiadomości |
| trigger:{guid} | Uruchamia jeden z triggerów społeczności z payload przycisku. | Tak, jako nowe żądanie na URL tego triggera |

## Zmiana karty jednym dotknięciem

Przycisk webhook_action niesie listę kroków w triggers . Po naciśnięciu wykonują się one po kolei na serwerze mssgs, a wynik widzą wszyscy na kanale.

| Krok | Co robi, dla wszystkich | Pola |
| --- | --- | --- |
| update_message | Zastępuje kartę i jej przyciski. Wyślij "actions": [] , żeby usunąć przyciski. | message_container , actions , content |
| remove_message | Usuwa wiadomość. | Brak |
| add_reaction | Dodaje reakcję w imieniu osoby, która nacisnęła. | emoji |
| add_reply | Publikuje odpowiedź w imieniu osoby, która nacisnęła. | 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:" }
      ]
    }
  ]
}
```

## Odbieranie naciśnięć

Wiadomość z przyciskami wraca z webhooka z stream_url . Trzymaj go otwartym, a każde naciśnięcie dotrze jako zdarzenie typu action , z id przycisku, zapisanym przyciskiem i jego payload oraz informacją, kto go nacisnął:

```sse
data: {"type": "action", "message_id": "...", "action_id": "open_gate", "action": {"id": "open_gate", "payload": {"door": "front"}, ...}, "member_guid": "member-guid", "member": {...}, "ts": 1790000000000}
```

Wykonaj właściwą pracę, np. otwórz bramę, a potem ustaw końcowy stan karty przez callback_url . Jak działają strumień i callback, opisujemy w [aktualizacjach na żywo](https://docs.mss.gs/pl/live-updates).

## Uruchamianie komendy przyciskiem

Przycisk trigger:{guid} uruchamia jeden z triggerów twojej społeczności, tak jakby ktoś wpisał komendę, i przekazuje payload przycisku. Trigger otrzymuje:

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

## Pola

| Pole | Typ | Co robi |
| --- | --- | --- |
| type | string | url:{url} , webhook_action albo trigger:{guid} . Wymagane. |
| text | string | Etykieta na przycisku. Wymagane; działa też label . |
| color | string | Kolor przycisku, zobacz niżej. |
| id | string | Dla webhook_action : który przycisk naciśnięto. Unikalne w obrębie wiadomości. |
| payload | object | Twoje dane, zwracane przy naciśnięciu. |
| triggers | array | Dla webhook_action : kroki do wykonania. |
| disabled | boolean | Pokazuje przycisk wyszarzony, a naciśnięcia są odrzucane. |

### Kolory

green , blue i purple rysują pełny, główny przycisk. red , orange i yellow rysują drugorzędny: używaj ich dla „Odrzuć”, „Anuluj” i innych ostrożnych wyborów.

## Błędy

Gdy publikujesz wiadomość z przyciskami, mssgs najpierw je sprawdza:

| Kod | Znaczenie |
| --- | --- |
| INVALID_ACTIONS_FORMAT | actions nie jest listą obiektów. |
| INVALID_ACTION_MISSING_FIELDS | Przycisk nie ma type albo text . |
| DUPLICATE_ACTION_ID | Dwa przyciski mają to samo id . |
| INVALID_TRIGGERS_FORMAT | triggers nie jest listą kroków. |
| INVALID_TRIGGER_MISSING_ACTION | Krok nie ma action . |
| INVALID_TRIGGER_ACTION_NOT_ALLOWED | Krok inny niż cztery powyższe. |

### Gdy ktoś naciśnie

| Kod | Znaczenie |
| --- | --- |
| MESSAGE_NOT_FOUND | Wiadomość została w międzyczasie usunięta. |
| ACTION_NOT_FOUND | W wiadomości nie ma przycisku o tym id. |
| ACTION_DISABLED | Przycisk jest wyłączony. |
| TRIGGER_NOT_FOUND , TRIGGER_NOT_ACTIVE | Trigger, na który wskazuje przycisk, nie istnieje albo jest wyłączony. |
| TRIGGER_NOT_ALLOWED | Członek nie ma roli, która może używać tego triggera. |

## Przechodzisz ze starej dokumentacji?

## Buduj dalej
