---
title: "Бутони: интерактивни съобщения в mssgs"
description: "Сложете бутони под карта в mssgs: отворете линк, сменете картата за всички с едно докосване, следете натисканията на живо или пуснете команда. Полета и грешки."
canonical: https://docs.mss.gs/bg/buttons
language: bg
---

# Добавете бутони

Сложете бутони под всяка карта. Бутонът отваря линк, сменя картата за всички в момента, в който някой го докосне, или съобщава на вашата услуга, че е натиснат.

## Какво можете да направите

- **Отворете линк** Пратете хората към страница, табло или pull request.

- **Сменете картата с едно докосване** Редактирайте я, премахнете я, реагирайте или отговорете направо от натискането, без собствен сървър.

- **Чуйте всяко натискане** Вашата услуга научава на живо кой какво е натиснал.

- **Пуснете команда** Бутонът може да задейства някоя от slash командите на общността, с данни.

В приложението

#### Входна врата

Някой звъни: картата се появява

#### Входна врата

Докосване на Отвори портата: картата се сменя за всички

За самата промяна не е нужен сървър: стъпките се пазят заедно със съобщението. Контролерът на портата чува натискането и отваря портата.

- [Бърз старт](#quick-start)

- [Три вида](#kinds)

- [Смяна на картата](#steps)

- [Чуйте натискането](#listen)

- [Пускане на команда](#trigger)

- [Полета](#fields)

- [Грешки](#errors)

## Бърз старт

### Добавете списък actions

Бутоните се слагат в actions , до картата: в публикация от [уебхук](https://docs.mss.gs/bg/webhooks), в отговор на [команда](https://docs.mss.gs/bg/commands) или в [обновяване](https://docs.mss.gs/bg/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" }
  ]
}
```

#### Деплой на v2.1 в продукция?

- 2 Изберете какво прави натискането Линк, промяна на картата или извикване на вашата услуга. Трите вида са описани по-долу.

## Три вида бутони

type определя какво прави натискането.

| Тип | Какво прави натискането | Стига ли до вас |
| --- | --- | --- |
| url:{url} | Отваря линка. | Не |
| webhook_action | Изпълнява стъпките, запазени с него, за всички в канала. | Да, в stream_url на съобщението |
| trigger:{guid} | Задейства един от тригерите на общността с payload на бутона. | Да, като нова заявка към URL адреса на този тригер |

## Смяна на картата с едно докосване

Бутон webhook_action носи списък със стъпки в triggers . При натискане те се изпълняват по ред на сървъра на mssgs и всички в канала виждат резултата.

| Стъпка | Какво прави, за всички | Полета |
| --- | --- | --- |
| update_message | Заменя картата и бутоните ѝ. Изпратете "actions": [] , за да премахнете бутоните. | message_container , actions , content |
| remove_message | Изтрива съобщението. | Няма |
| add_reaction | Добавя реакция от името на члена, който е натиснал. | emoji |
| add_reply | Публикува отговор от името на члена, който е натиснал. | 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:" }
      ]
    }
  ]
}
```

## Чуйте натискането

Съобщение с бутони се връща от уебхука с stream_url . Дръжте го отворен и всяко натискане пристига като събитие от тип action , с id на бутона, запазения бутон и неговия payload , както и кой го е натиснал:

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

Свършете истинската работа, например отворете портата, а после задайте крайното състояние на картата чрез callback_url . Как работят потокът и callback-ът, вижте в [обновления на живо](https://docs.mss.gs/bg/live-updates).

## Пускане на команда с бутон

Бутон trigger:{guid} задейства един от тригерите на вашата общност, все едно някой е написал командата, и предава payload на бутона. Тригерът получава:

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

## Полета

| Поле | Тип | Какво прави |
| --- | --- | --- |
| type | string | url:{url} , webhook_action или trigger:{guid} . Задължително. |
| text | string | Надписът на бутона. Задължително; работи и label . |
| color | string | Цветът на бутона, вижте по-долу. |
| id | string | За webhook_action : кой бутон е натиснат. Уникално в рамките на съобщението. |
| payload | object | Вашите данни, които се връщат при натискане. |
| triggers | array | За webhook_action : стъпките за изпълнение. |
| disabled | boolean | Показва бутона посивен, а натисканията се отказват. |

### Цветове

green , blue и purple рисуват плътен, основен бутон. red , orange и yellow рисуват второстепенен: използвайте ги за „Отхвърли“, „Отказ“ и други избори, които искат внимание.

## Грешки

Когато публикувате съобщение с бутони, mssgs първо ги проверява:

| Код | Значение |
| --- | --- |
| INVALID_ACTIONS_FORMAT | actions не е списък от обекти. |
| INVALID_ACTION_MISSING_FIELDS | Бутон няма type или text . |
| DUPLICATE_ACTION_ID | Два бутона имат едно и също id . |
| INVALID_TRIGGERS_FORMAT | triggers не е списък от стъпки. |
| INVALID_TRIGGER_MISSING_ACTION | Стъпка няма action . |
| INVALID_TRIGGER_ACTION_NOT_ALLOWED | Стъпка, различна от четирите по-горе. |

### Когато някой натисне

| Код | Значение |
| --- | --- |
| MESSAGE_NOT_FOUND | Съобщението междувременно е изтрито. |
| ACTION_NOT_FOUND | В съобщението няма бутон с това id. |
| ACTION_DISABLED | Бутонът е деактивиран. |
| TRIGGER_NOT_FOUND , TRIGGER_NOT_ACTIVE | Тригерът, към който сочи бутонът, вече го няма или е изключен. |
| TRIGGER_NOT_ALLOWED | Членът няма роля, която може да използва този тригер. |

## Идвате от старата документация?

## Продължете нататък
