---
title: "Gumbi: interaktivne poruke u mssgs"
description: "Dodaj gumbe ispod mssgs kartice: otvori poveznicu, promijeni karticu za sve jednim dodirom, primaj svaki pritisak uživo ili pokreni naredbu. Polja i pogreške."
canonical: https://docs.mss.gs/hr/buttons
language: hr
---

# Dodaj gumbe

Stavi gumbe ispod bilo koje kartice. Gumb otvara poveznicu, mijenja karticu za sve čim ga netko dodirne ili javlja tvojoj usluzi da je pritisnut.

## Što možeš napraviti

- **Otvori poveznicu** Pošalji ljude na stranicu, nadzornu ploču ili pull request.

- **Promijeni karticu jednim dodirom** Uredi je, ukloni, reagiraj ili odgovori, izravno iz pritiska, bez vlastitog servera.

- **Primaj svaki pritisak** Tvoja usluga uživo saznaje tko je što pritisnuo.

- **Pokreni naredbu** Gumb može pokrenuti jednu od slash naredbi zajednice, s podacima.

U aplikaciji

#### Ulazna vrata

Netko zvoni: pojavi se kartica

#### Ulazna vrata

Dodir na Otvori kapiju: kartica se mijenja za sve

Za samu promjenu ne treba ti server: koraci su spremljeni uz poruku. Tvoj upravljač kapije prima pritisak i otvara kapiju.

- [Brzi početak](#quick-start)

- [Tri vrste](#kinds)

- [Promjena kartice](#steps)

- [Primanje pritisaka](#listen)

- [Pokretanje naredbe](#trigger)

- [Polja](#fields)

- [Pogreške](#errors)

## Brzi početak

### Dodaj popis actions

Gumbi idu u actions , pored kartice: u objavi [webhooka](https://docs.mss.gs/hr/webhooks), u odgovoru na [naredbu](https://docs.mss.gs/hr/commands) ili u [ažuriranju](https://docs.mss.gs/hr/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" }
  ]
}
```

#### Deployati v2.1 u produkciju?

- 2 Odaberi što pritisak radi Poveznica, promjena kartice ili poziv tvojoj usluzi. Tri vrste opisane su u nastavku.

## Tri vrste gumba

O tome što pritisak radi odlučuje type .

| Tip | Što pritisak radi | Stiže do tebe |
| --- | --- | --- |
| url:{url} | Otvara poveznicu. | Ne |
| webhook_action | Izvršava korake spremljene uz njega, za sve u kanalu. | Da, na stream_url poruke |
| trigger:{guid} | Pokreće jedan od triggera zajednice s payload gumba. | Da, kao novi zahtjev na URL tog triggera |

## Promijeni karticu jednim dodirom

Gumb webhook_action nosi popis koraka u triggers . Na pritisak se oni izvršavaju redom na mssgs serveru, a rezultat vide svi u kanalu.

| Korak | Što radi, za sve | Polja |
| --- | --- | --- |
| update_message | Zamjenjuje karticu i njezine gumbe. Pošalji "actions": [] da bi uklonio gumbe. | message_container , actions , content |
| remove_message | Briše poruku. | Nema |
| add_reaction | Dodaje reakciju u ime člana koji je pritisnuo. | emoji |
| add_reply | Objavljuje odgovor u ime člana koji je pritisnuo. | 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:" }
      ]
    }
  ]
}
```

## Primaj pritiske

Poruka s gumbima vraća se iz webhooka sa stream_url . Drži ga otvorenim i svaki pritisak stići će kao događaj tipa action , s id-jem gumba, spremljenim gumbom i njegovim payload te podatkom tko ga je pritisnuo:

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

Odradi pravi posao, primjerice otvori kapiju, a zatim postavi konačno stanje kartice preko callback_url . Kako rade stream i callback, opisuje stranica [ažuriranja uživo](https://docs.mss.gs/hr/live-updates).

## Pokreni naredbu gumbom

Gumb trigger:{guid} pokreće jedan od triggera tvoje zajednice, kao da je netko upisao naredbu, i predaje payload gumba. Trigger prima:

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

## Polja

| Polje | Tip | Što radi |
| --- | --- | --- |
| type | string | url:{url} , webhook_action ili trigger:{guid} . Obavezno. |
| text | string | Natpis na gumbu. Obavezno; radi i label . |
| color | string | Boja gumba, pogledaj u nastavku. |
| id | string | Za webhook_action : koji je gumb pritisnut. Jedinstven unutar poruke. |
| payload | object | Tvoji podaci, vraćeni pri pritisku. |
| triggers | array | Za webhook_action : koraci koje treba izvršiti. |
| disabled | boolean | Prikazuje gumb zasivljen, a pritisci se odbijaju. |

### Boje

green , blue i purple crtaju ispunjeni, primarni gumb. red , orange i yellow crtaju sekundarni: koristi ih za „Odbij“, „Odustani“ i druge oprezne izbore.

## Pogreške

Kad objaviš poruku s gumbima, mssgs ih najprije provjeri:

| Kôd | Značenje |
| --- | --- |
| INVALID_ACTIONS_FORMAT | actions nije popis objekata. |
| INVALID_ACTION_MISSING_FIELDS | Gumb nema type ili nema text . |
| DUPLICATE_ACTION_ID | Dva gumba imaju isti id . |
| INVALID_TRIGGERS_FORMAT | triggers nije popis koraka. |
| INVALID_TRIGGER_MISSING_ACTION | Korak nema action . |
| INVALID_TRIGGER_ACTION_NOT_ALLOWED | Korak koji nije jedan od četiri gore navedena. |

### Kad netko pritisne

| Kôd | Značenje |
| --- | --- |
| MESSAGE_NOT_FOUND | Poruka je u međuvremenu izbrisana. |
| ACTION_NOT_FOUND | Na poruci nema gumba s tim id-jem. |
| ACTION_DISABLED | Gumb je onemogućen. |
| TRIGGER_NOT_FOUND , TRIGGER_NOT_ACTIVE | Trigger na koji gumb pokazuje više ne postoji ili je isključen. |
| TRIGGER_NOT_ALLOWED | Član nema ulogu koja smije koristiti taj trigger. |

## Dolaziš iz stare dokumentacije?

## Nastavi graditi
