---
title: "Butoane: mesaje interactive în mssgs"
description: "Pune butoane sub un card mssgs: deschide un link, schimbă cardul pentru toți cu o atingere, vezi live fiecare apăsare sau rulează o comandă. Câmpuri și erori."
canonical: https://docs.mss.gs/ro/buttons
language: ro
---

# Adaugă butoane

Pune butoane sub orice card. Un buton deschide un link, schimbă cardul pentru toată lumea în clipa în care cineva îl atinge sau îi spune serviciului tău că a fost apăsat.

## Ce poți face

- **Deschide un link** Trimite oamenii spre o pagină, un dashboard sau un pull request.

- **Schimbă cardul cu o atingere** Editează-l, șterge-l, reacționează sau răspunde, direct din apăsare, fără un server propriu.

- **Află de fiecare apăsare** Serviciul tău află live cine ce a apăsat.

- **Rulează o comandă** Un buton poate declanșa una dintre comenzile slash ale comunității, cu date.

În aplicație

#### Ușa de la intrare

Sună cineva: apare cardul

#### Ușa de la intrare

O atingere pe Deschide poarta: cardul se schimbă pentru toată lumea

Pentru schimbarea în sine nu ai nevoie de server: pașii sunt stocați odată cu mesajul. Controlerul porții tale află de apăsare și deschide poarta.

- [Start rapid](#quick-start)

- [Trei tipuri](#kinds)

- [Schimbă cardul](#steps)

- [Află de apăsare](#listen)

- [Rulează o comandă](#trigger)

- [Câmpuri](#fields)

- [Erori](#errors)

## Start rapid

### Adaugă o listă actions

Butoanele merg în actions , lângă card, într-o postare prin [webhook](https://docs.mss.gs/ro/webhooks), într-un răspuns la o [comandă](https://docs.mss.gs/ro/commands) sau într-o [actualizare](https://docs.mss.gs/ro/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" }
  ]
}
```

#### Faci deploy la v2.1 în producție?

- 2 Alege ce face o apăsare Un link, o schimbare a cardului sau un apel către serviciul tău. Cele trei tipuri sunt mai jos.

## Trei tipuri de butoane

type decide ce face o apăsare.

| Tip | Ce face o apăsare | Ajunge la tine |
| --- | --- | --- |
| url:{url} | Deschide linkul. | Nu |
| webhook_action | Rulează pașii pe care i-ai stocat cu el, pentru toată lumea din canal. | Da, pe stream_url -ul mesajului |
| trigger:{guid} | Declanșează unul dintre triggerele comunității cu payload -ul butonului. | Da, ca o cerere nouă la URL-ul acelui trigger |

## Schimbă cardul cu o atingere

Un buton webhook_action poartă o listă de pași în triggers . La apăsare, aceștia rulează pe serverul mssgs, în ordine, iar toată lumea din canal vede rezultatul.

| Pas | Ce face, pentru toată lumea | Câmpuri |
| --- | --- | --- |
| update_message | Înlocuiește cardul și butoanele lui. Trimite "actions": [] ca să elimini butoanele. | message_container , actions , content |
| remove_message | Șterge mesajul. | Niciunul |
| add_reaction | Adaugă o reacție din partea membrului care a apăsat. | emoji |
| add_reply | Postează un răspuns din partea membrului care a apăsat. | 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:" }
      ]
    }
  ]
}
```

## Află de apăsare

Un mesaj cu butoane se întoarce de la webhook cu un stream_url . Ține-l deschis și fiecare apăsare sosește ca un eveniment de tip action , cu id-ul butonului, butonul stocat și payload -ul lui, plus cine l-a apăsat:

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

Fă munca propriu-zisă, de exemplu deschide poarta, apoi setează starea finală a cardului prin callback_url . Cum funcționează fluxul și callback-ul afli la [actualizări live](https://docs.mss.gs/ro/live-updates).

## Rulează o comandă dintr-un buton

Un buton trigger:{guid} declanșează unul dintre triggerele comunității tale, ca și cum cineva ar fi tastat comanda, și transmite payload -ul butonului. Triggerul primește:

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

## Câmpuri

| Câmp | Tip | Ce face |
| --- | --- | --- |
| type | string | url:{url} , webhook_action sau trigger:{guid} . Obligatoriu. |
| text | string | Textul de pe buton. Obligatoriu; merge și label . |
| color | string | Culoarea butonului, vezi mai jos. |
| id | string | Pentru webhook_action : ce buton a fost apăsat. Unic în cadrul mesajului. |
| payload | object | Datele tale, returnate la apăsare. |
| triggers | array | Pentru webhook_action : pașii de rulat. |
| disabled | boolean | Afișează butonul estompat, iar apăsările sunt refuzate. |

### Culori

green , blue și purple desenează un buton plin, principal. red , orange și yellow desenează unul secundar: folosește-le pentru „Respinge”, „Anulează” și alte alegeri care cer prudență.

## Erori

Când postezi un mesaj cu butoane, mssgs le verifică mai întâi:

| Cod | Semnificație |
| --- | --- |
| INVALID_ACTIONS_FORMAT | actions nu este o listă de obiecte. |
| INVALID_ACTION_MISSING_FIELDS | Un buton nu are type sau nu are text . |
| DUPLICATE_ACTION_ID | Două butoane au același id . |
| INVALID_TRIGGERS_FORMAT | triggers nu este o listă de pași. |
| INVALID_TRIGGER_MISSING_ACTION | Un pas nu are action . |
| INVALID_TRIGGER_ACTION_NOT_ALLOWED | Un pas diferit de cei patru de mai sus. |

### Când apasă cineva

| Cod | Semnificație |
| --- | --- |
| MESSAGE_NOT_FOUND | Între timp, mesajul a fost șters. |
| ACTION_NOT_FOUND | Pe mesaj nu există niciun buton cu acel id. |
| ACTION_DISABLED | Butonul este dezactivat. |
| TRIGGER_NOT_FOUND , TRIGGER_NOT_ACTIVE | Triggerul spre care arată un buton nu mai există sau este dezactivat. |
| TRIGGER_NOT_ALLOWED | Membrul nu are un rol care poate folosi acel trigger. |

## Vii de la documentația veche?

## Construiește mai departe
