---
title: "Perjeles parancsok: saját /parancsok az mssgs-közösségben"
description: "Saját perjeles parancsok az mssgs-közösségedben: az mssgs elküldi az üzenetet a szolgáltatásodnak, a JSON-választ kártyaként teszi közzé. Beállítás, korlátok."
canonical: https://docs.mss.gs/hu/commands
language: hu
---

# Adj hozzá perjeles parancsokat

Adj a közösségednek saját /parancsokat . Amikor egy tag beír egyet, az mssgs elküldi az üzenetet a webszolgáltatásodnak, és közzéteszi, amit az válaszol: egy kártyát, gombokat, vagy egy csak neki látható választ.

## Mire használhatod

- **Válaszolj kártyával** Válaszolj JSON-nal, és a csatornában kártyaként jelenik meg.

- **Tudd, ki kérdezett** Megkapod a tagot és a szerepköreit, így ellenőrizheted, ki mit tehet meg.

- **Válaszolj privátban** A választ csak az a tag látja, aki kérdezett.

- **Nem kell sietned** Válaszolj 5 másodpercen belül egy betöltésjelzővel, majd fejezd be a callback URL-en keresztül.

Az alkalmazásban

Gépelj be egy / jelet, és megjelennek a közösség parancsai

#### Amsterdam

A szolgáltatásod válaszol, az mssgs közzéteszi a kártyát

A parancsválasztó és a kártya az alkalmazás saját felülete. A lábléc megmutatja, ki melyik parancsot használta.

- [Gyors kezdés](#quick-start)

- [Beállítások](#settings)

- [Mit kapsz](#request)

- [Mit válaszolsz](#reply)

- [Öt másodperc](#timing)

- [Privát válaszok](#private)

- [Teljes példa](#example)

- [Korlátok](#limits)

## Gyors kezdés

- 1 Hozd létre a triggert Az asztali alkalmazásban nyisd meg a közösséged **Manage Server → Triggers** menüpontját, és adj hozzá egy triggert: a parancsot, amelyre reagál, például /weather , és a webszolgáltatásod URL-jét.

### Fogadd az üzenetet

Amikor egy tag /weather kezdetű üzenetet küld, az mssgs POST-kéréssel elküldi az URL-edre:

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

### Válaszolj JSON-nal

Válaszolj 5 másodpercen belül 2xx státusszal és JSON-nal. Ebből kártya lesz a csatornában.

```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

## Beállítások

Minden triggernek ezek a beállításai vannak a **Manage Server → Triggers** menüpontban.

| Beállítás | Mit csinál |
| --- | --- |
| Trigger Name | A trigger neve, amely a parancs mellett jelenik meg a választóban. |
| Word to Match | A szöveg, amellyel az üzenetnek kezdődnie kell, például /weather . A perjel szokásos, de nem kötelező. |
| URL Endpoint | Ahová az mssgs elküldi az üzenetet. |
| Webhook Secret | Opcionális. Az mssgs minden kérést aláír vele, lásd lejjebb. |
| Active | Kikapcsolja a triggert anélkül, hogy törölnéd. |
| Post Matching Message | Megmarad-e a tag saját /weather Amsterdam üzenete a csatornában a válaszod fölött. |
| Show Loading Reply | Betöltési kártyát mutat, amíg a szolgáltatásod dolgozik. |
| Allowed User Groups | Csak ezeknek a szerepköröknek a tagjai indíthatják el. Mindenki más számára ez egy közönséges üzenet. |

## Mit kapsz

Egy POST-kérést JSON-törzzsel. A fejlécek között ott van a User-Agent: mssgs-webhook/1.0 .

| Mező | Típus | Mi ez |
| --- | --- | --- |
| server_guid | string | A közösség. |
| channel_guid | string | A csatorna, ahová az üzenetet küldték. |
| trigger_match | string | Az egyező parancs, például /weather . |
| message.content | string | A teljes üzenet, a paranccsal együtt. |
| message.member_guid | string | A küldő tag ebben a közösségben. |
| message.user_guid | string | Ugyanannak a személynek a fiókja, minden közösségben ugyanaz. |
| message.group_guids | array | A tag szerepkörei. |
| message.cms | number | A küldés ideje, ezredmásodpercben. |
| message.is_action_button | boolean | true , ha egy gomb indította a triggert, nem begépelt parancs. |
| message.action_payload | object | A gomb payload értéke, gombnyomásoknál. |
| callback_url | string | Ezzel később, 30 percig frissítheted vagy törölheted a válaszodat. |
| stream_url | string | A válaszodra érkező válaszok, reakciók és gombnyomások élő streamje, 10 percig. |

### Ki mit tehet meg

Vesd össze a message.group_guids értékét a megbízhatónak tartott szerepkörökkel, például hogy a /ban parancsot csak moderátorok futtathassák. Ha egy parancsot teljesen el akarsz zárni mindenki más elől, állítsd be a szerepköreit a trigger beállításaiban.

## Mit válaszolsz

Bármilyen 2xx státuszt JSON-törzzsel, legfeljebb 4 MB-ig. Küldd el legalább az egyiket: message_container vagy actions .

| Mező | Típus | Mi ez |
| --- | --- | --- |
| message_container | object | A kártya. Az üzenetkártyák minden mezője működik itt, a státuszcímkét, a jelvényt, a diff-statisztikát és az összecsukott gondolatmenetet is beleértve. |
| title , description , color , ... | string | Rövidítés: a legfelső szinten megadott kártyamezőket a rendszer kártyába csomagolja helyetted. |
| actions | array | Gombok a kártya alatt. Lásd a gombokat. |
| visible_to_member_guids | array | Csak ezek a tagok látják a választ. Lásd a privát válaszokat. |

## Öt másodperc

Az mssgs 5 másodpercig vár a válaszodra. Ha több időre van szükséged, válaszolj azonnal egy betöltési kártyával, és fejezd be a callback_url címen keresztül, amely 30 percig érvényes.

```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 } })
});
```

## Privát válaszok

Add meg a tagazonosítókat a visible_to_member_guids mezőben, és csak ők látják a válaszodat. A kérésben kapott member_guid segítségével csak annak válaszolhatsz, aki kérdezett.

```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>"]
}
```

## Teljes példa

Egy /weather parancs Node.js-ben, Expresszel, amely kártyával válaszol.

```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);
```

## Korlátok

| Korlát | Érték |
| --- | --- |
| Válaszidő | 5 másodperc |
| Válasz mérete | 4 MB |
| Parancsok tagonként | 5 parancs 5 másodpercenként |
| A válasz utólagos frissítése | 30 perc, a callback_url címen keresztül |
| A válasz élő streamje | 10 perc, a stream_url címen keresztül |

## Építs tovább
