---
title: "Príkazy s lomkou: vlastné /príkazy v komunite mssgs"
description: "Daj komunite v mssgs vlastné príkazy s lomkou: mssgs pošle správu tvojej webovej službe a jej JSON odpoveď uverejní ako kartu. Nastavenie, odpovede a limity."
canonical: https://docs.mss.gs/sk/commands
language: sk
---

# Pridaj príkazy s lomkou

Daj svojej komunite vlastné /príkazy . Keď ho člen napíše, mssgs pošle správu tvojej webovej službe a uverejní, čo odpovie: kartu, tlačidlá alebo odpoveď, ktorú uvidí iba ten, kto sa pýtal.

## Čo s tým môžeš robiť

- **Odpovedz kartou** Odpovedz JSON-om a v kanáli sa objaví ako karta.

- **Vieš, kto sa pýta** Dostaneš člena a jeho roly, takže si overíš, kto smie čo robiť.

- **Odpovedaj súkromne** Ukáž odpoveď iba členovi, ktorý sa pýtal.

- **Nikam sa neponáhľaj** Do 5 sekúnd odpovedz loaderom a zvyšok dokonči cez callback URL.

V aplikácii

Napíš / a objavia sa príkazy komunity

#### Amsterdam

Tvoja služba odpovie, mssgs uverejní kartu

Výber príkazov aj karta sú priamo z aplikácie. Päta hovorí, kto použil ktorý príkaz.

- [Rýchly štart](#quick-start)

- [Nastavenia](#settings)

- [Čo dostaneš](#request)

- [Čo odpovieš](#reply)

- [Päť sekúnd](#timing)

- [Súkromné odpovede](#private)

- [Celý príklad](#example)

- [Limity](#limits)

## Rýchly štart

- 1 Vytvor trigger V desktopovej aplikácii otvor vo svojej komunite **Manage Server → Triggers** a pridaj trigger: príkaz, na ktorý reaguje, napríklad /weather , a URL tvojej webovej služby.

### Prijmi správu

Keď člen pošle správu, ktorá začína na /weather , mssgs ju cez POST pošle na tvoju URL:

```json
{
  "server_guid": "abc12345-...",
  "channel_guid": "def67890-...",
  "trigger_match": "/weather",
  "message": {
    "id": "d01ZZdef6-...",
    "content": "/weather Amsterdam",
    "member_guid": "member-guid",
    "user_guid": "user-guid",
    "group_guids": ["group-guid-1", "group-guid-2"],
    "cms": 1790000000000
  },
  "callback_url": "https://mss.gs/api/v1/trigger-callback/...",
  "stream_url": "https://mss.gs/api/v1/instant/...?token=..."
}
```

### Odpovedz JSON-om

Do 5 sekúnd odpovedz so stavom 2xx a JSON-om. V kanáli sa z neho stane karta.

```json
{
  "message_container": {
    "color": "blue",
    "title": "Amsterdam",
    "description": "14 °C, light rain until 16:00",
    "fields": [
      { "field": "Wind", "value": "SW 18 km/h" },
      { "field": "Humidity", "value": "82%" }
    ]
  }
}
```

#### Amsterdam

## Nastavenia

Každý trigger má tieto nastavenia v **Manage Server → Triggers**.

| Nastavenie | Čo robí |
| --- | --- |
| Trigger Name | Názov triggera, zobrazený vedľa príkazu vo výbere. |
| Word to Match | Text, ktorým musí správa začínať, napríklad /weather . Lomka je zvykom, nie je povinná. |
| URL Endpoint | Kam mssgs pošle správu. |
| Webhook Secret | Voliteľný tajný kľúč. mssgs ním podpíše každú požiadavku, pozri nižšie. |
| Active | Vypne trigger bez toho, aby sa zmazal. |
| Post Matching Message | Či vlastná správa člena, napríklad /weather Amsterdam , zostane v kanáli nad tvojou odpoveďou. |
| Show Loading Reply | Zobrazí kartu načítavania, kým tvoja služba pracuje. |
| Allowed User Groups | Spustia ho iba členovia s týmito rolami. Pre všetkých ostatných je to obyčajná správa. |

## Čo dostaneš

POST s telom vo formáte JSON. Medzi hlavičkami je User-Agent: mssgs-webhook/1.0 .

| Pole | Typ | Čo to je |
| --- | --- | --- |
| server_guid | string | Komunita. |
| channel_guid | string | Kanál, v ktorom bola správa poslaná. |
| trigger_match | string | Príkaz, ktorý sa zhodoval, napríklad /weather . |
| message.content | string | Celá správa vrátane príkazu. |
| message.member_guid | string | Člen, ktorý ju poslal, v tejto komunite. |
| message.user_guid | string | Účet tej istej osoby, rovnaký v každej komunite. |
| message.group_guids | array | Roly, ktoré člen má. |
| message.cms | number | Kedy bola poslaná, v milisekundách. |
| message.is_action_button | boolean | true , keď trigger spustilo tlačidlo, nie napísaný príkaz. |
| message.action_payload | object | payload tlačidla, pri stlačení tlačidla. |
| callback_url | string | Cez ňu odpoveď neskôr aktualizuješ alebo zmažeš, počas 30 minút. |
| stream_url | string | Živý stream odpovedí, reakcií a stlačení tlačidiel na tvojej odpovedi, počas 10 minút. |

### Kto smie čo robiť

Porovnaj message.group_guids s rolami, ktorým dôveruješ, napríklad aby /ban mohli spúšťať iba moderátori. Ak má byť príkaz pre všetkých ostatných úplne nedostupný, nastav jeho roly v nastaveniach triggera.

## Čo odpovieš

Ľubovoľný stav 2xx s telom JSON, najviac 4 MB. Pošli aspoň jedno z polí message_container alebo actions .

| Pole | Typ | Čo to je |
| --- | --- | --- |
| message_container | object | Karta. Funguje tu každé pole z kariet správ vrátane stavového štítka, odznaku, štatistík diffu a zbaleného uvažovania. |
| title , description , color , ... | string | Skratka: polia karty na najvyššej úrovni sa za teba zabalia do karty. |
| actions | array | Tlačidlá pod kartou. Pozri tlačidlá. |
| visible_to_member_guids | array | Odpoveď uvidia iba títo členovia. Pozri súkromné odpovede. |

## Päť sekúnd

mssgs na tvoju odpoveď čaká 5 sekúnd. Ak potrebuješ viac času, odpovedz hneď kartou s loaderom a dokonči to cez callback_url , ktorá platí 30 minút.

```javascript
// Answer within 5 seconds with a loader...
res.json({ message_container: { loader: true, loader_text: 'Looking it up…' } });

// ...then finish in your own time with the callback URL.
await fetch(req.body.callback_url, {
  method: 'PUT',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ message_container: { color: 'blue', title: 'Done', description: result } })
});
```

## Súkromné odpovede

Daj id členov do visible_to_member_guids a tvoju odpoveď uvidia iba oni. Použi member_guid z požiadavky a odpovieš iba tomu, kto sa pýtal.

```json
{
  "message_container": {
    "color": "green",
    "title": "You're on the list",
    "description": "Only you can see this reply."
  },
  "visible_to_member_guids": ["<message.member_guid from the request>"]
}
```

## Celý príklad

Príkaz /weather v Node.js s Expressom, ktorý odpovedá kartou.

```javascript
import express from 'express';

const app = express();
app.use(express.json());

app.post('/mssgs/weather', async (req, res) => {
  const city = req.body.message.content.replace('/weather', '').trim() || 'Amsterdam';
  const w = await getWeather(city); // your own lookup

  res.json({
    message_container: {
      color: 'blue',
      title: city,
      description: `${w.temp} °C, ${w.summary}`,
      fields: [
        { field: 'Wind', value: w.wind },
        { field: 'Humidity', value: `${w.humidity}%` }
      ]
    }
  });
});

app.listen(3000);
```

## Limity

| Limit | Hodnota |
| --- | --- |
| Čas na odpoveď | 5 sekúnd |
| Veľkosť odpovede | 4 MB |
| Príkazy na člena | 5 za 5 sekúnd |
| Neskoršia úprava odpovede | 30 minút, cez callback_url |
| Živý stream odpovede | 10 minút, cez stream_url |

## Tvor ďalej
