---
title: "Tlačítka: interaktivní zprávy v mssgs"
description: "Přidej tlačítka pod kartu v mssgs: otevři odkaz, změň kartu všem jedním klepnutím, sleduj každý stisk živě nebo spusť jiný příkaz. Pole a chyby."
canonical: https://docs.mss.gs/cs/buttons
language: cs
---

# Přidej tlačítka

Dej tlačítka pod jakoukoli kartu. Tlačítko otevře odkaz, změní kartu všem ve chvíli, kdy na něj někdo klepne, nebo dá tvé službě vědět, že ho někdo stiskl.

## Co s tím můžeš dělat

- **Otevři odkaz** Pošli lidi na stránku, dashboard nebo pull request.

- **Změň kartu jedním klepnutím** Uprav ji, smaž, přidej reakci nebo odpověď, rovnou ze stisku, bez vlastního serveru.

- **Zachyť každý stisk** Tvoje služba živě ví, kdo co stiskl.

- **Spusť příkaz** Tlačítko může spustit jeden z příkazů s lomítkem tvé komunity, i s daty.

V aplikaci

#### Vchodové dveře

Někdo zazvoní: objeví se karta

#### Vchodové dveře

Klepnutí na Otevřít bránu: karta se změní všem

Samotná změna nepotřebuje žádný server: kroky jsou uložené se zprávou. Tvůj ovladač brány stisk zachytí a bránu otevře.

- [Rychlý start](#quick-start)

- [Tři druhy](#kinds)

- [Změna karty](#steps)

- [Zachycení stisku](#listen)

- [Spuštění příkazu](#trigger)

- [Pole](#fields)

- [Chyby](#errors)

## Rychlý start

### Přidej seznam actions

Tlačítka patří do actions , vedle karty: v příspěvku přes [webhook](https://docs.mss.gs/cs/webhooks), v odpovědi na [příkaz](https://docs.mss.gs/cs/commands) nebo v [aktualizaci](https://docs.mss.gs/cs/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" }
  ]
}
```

#### Nasadit v2.1 do produkce?

- 2 Vyber, co stisk udělá Odkaz, změnu karty, nebo volání tvé služby. Všechny tři druhy najdeš níže.

## Tři druhy tlačítek

O tom, co stisk udělá, rozhoduje type .

| Typ | Co udělá stisk | Dozvíš se o něm |
| --- | --- | --- |
| url:{url} | Otevře odkaz. | Ne |
| webhook_action | Provede kroky uložené s tlačítkem, pro všechny v kanálu. | Ano, přes stream_url zprávy |
| trigger:{guid} | Spustí jeden z triggerů komunity s payload tlačítka. | Ano, jako nový požadavek na URL toho triggeru |

## Změna karty jedním klepnutím

Tlačítko webhook_action nese v triggers seznam kroků. Po stisku se postupně provedou na serveru mssgs a výsledek uvidí všichni v kanálu.

| Krok | Co udělá, pro všechny | Pole |
| --- | --- | --- |
| update_message | Nahradí kartu a její tlačítka. Pošli "actions": [] a tlačítka zmizí. | message_container , actions , content |
| remove_message | Smaže zprávu. | Žádná |
| add_reaction | Přidá reakci za člena, který tlačítko stiskl. | emoji |
| add_reply | Zveřejní odpověď za člena, který tlačítko stiskl. | 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:" }
      ]
    }
  ]
}
```

## Zachycení stisku

Zpráva s tlačítky se z webhooku vrátí se stream_url . Nech ho otevřený a každý stisk dorazí jako událost typu action , s id tlačítka, uloženým tlačítkem a jeho payload a s tím, kdo ho stiskl:

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

Udělej skutečnou práci, třeba otevři bránu, a pak nastav konečný stav karty přes callback_url . Jak funguje stream a callback, popisují [živé aktualizace](https://docs.mss.gs/cs/live-updates).

## Spuštění příkazu tlačítkem

Tlačítko trigger:{guid} spustí jeden z triggerů tvé komunity, jako by někdo napsal příkaz, a předá mu payload tlačítka. Trigger dostane:

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

## Pole

| Pole | Typ | Co dělá |
| --- | --- | --- |
| type | string | url:{url} , webhook_action nebo trigger:{guid} . Povinné. |
| text | string | Popisek na tlačítku. Povinné; funguje i label . |
| color | string | Barva tlačítka, viz níže. |
| id | string | U webhook_action : které tlačítko bylo stisknuto. V rámci zprávy jedinečné. |
| payload | object | Tvoje data, která se ti při stisku vrátí. |
| triggers | array | U webhook_action : kroky, které se mají provést. |
| disabled | boolean | Zobrazí tlačítko zašedlé a stisky se odmítnou. |

### Barvy

green , blue a purple vykreslí plné, hlavní tlačítko. red , orange a yellow vykreslí vedlejší: použij je pro „Odmítnout“, „Zrušit“ a další volby, se kterými je třeba opatrnosti.

## Chyby

Když zveřejníš zprávu s tlačítky, mssgs je nejdřív zkontroluje:

| Kód | Význam |
| --- | --- |
| INVALID_ACTIONS_FORMAT | actions není seznam objektů. |
| INVALID_ACTION_MISSING_FIELDS | Tlačítku chybí type nebo text . |
| DUPLICATE_ACTION_ID | Dvě tlačítka mají stejné id . |
| INVALID_TRIGGERS_FORMAT | triggers není seznam kroků. |
| INVALID_TRIGGER_MISSING_ACTION | Kroku chybí action . |
| INVALID_TRIGGER_ACTION_NOT_ALLOWED | Jiný krok než čtyři výše uvedené. |

### Když někdo stiskne tlačítko

| Kód | Význam |
| --- | --- |
| MESSAGE_NOT_FOUND | Zpráva byla mezitím smazána. |
| ACTION_NOT_FOUND | Zpráva nemá tlačítko s tímto id. |
| ACTION_DISABLED | Tlačítko je vypnuté. |
| TRIGGER_NOT_FOUND , TRIGGER_NOT_ACTIVE | Trigger, na který tlačítko odkazuje, už neexistuje nebo je vypnutý. |
| TRIGGER_NOT_ALLOWED | Člen nemá roli, která smí ten trigger používat. |

## Přicházíš ze staré dokumentace?

## Tvoř dál
