---
title: "Komandos su pasviruoju brūkšniu mssgs bendruomenei"
description: "Suteik savo mssgs bendruomenei komandas su pasviruoju brūkšniu: mssgs siunčia žinutę tavo paslaugai, o JSON atsakymą skelbia kaip kortelę. Sąranka ir limitai."
canonical: https://docs.mss.gs/lt/commands
language: lt
---

# Pridėk komandas su pasviruoju brūkšniu

Suteik savo bendruomenei jos pačios /komandas . Kai narys įveda vieną iš jų, mssgs nusiunčia žinutę tavo žiniatinklio paslaugai ir paskelbia jos atsakymą: kortelę, mygtukus ar atsakymą, kurį mato tik tas narys.

## Ką gali padaryti

- **Atsakyk kortele** Atsakyk JSON, ir kanale atsiras kortelė.

- **Žinok, kas klausia** Gauni narį ir jo roles, tad gali patikrinti, kam ką leidžiama daryti.

- **Atsakyk privačiai** Parodyk atsakymą tik tam nariui, kuris klausė.

- **Neskubėk** Per 5 sekundes atsakyk loader kortele, o baik per callback URL.

Programėlėje

Įvesk /, ir atsiras bendruomenės komandos

#### Amsterdam

Tavo paslauga atsako, mssgs paskelbia kortelę

Sąrašas ir kortelė yra pačios programėlės. Poraštėje parašyta, kas kurią komandą panaudojo.

- [Greita pradžia](#quick-start)

- [Nustatymai](#settings)

- [Ką gauni](#request)

- [Ką atsakai](#reply)

- [Penkios sekundės](#timing)

- [Privatūs atsakymai](#private)

- [Visas pavyzdys](#example)

- [Limitai](#limits)

## Greita pradžia

- 1 Sukurk trigerį Kompiuterio programėlėje atidaryk savo bendruomenės **Manage Server → Triggers** ir pridėk trigerį: komandą, į kurią jis reaguoja, pavyzdžiui, /weather , ir tavo žiniatinklio paslaugos URL.

### Gauk žinutę

Kai narys išsiunčia žinutę, prasidedančią /weather , mssgs nusiunčia ją POST užklausa į tavo 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=..."
}
```

### Atsakyk JSON

Per 5 sekundes atsakyk su 2xx būsena ir JSON. Kanale jis taps kortele.

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

## Nustatymai

Kiekvienas trigeris turi šiuos nustatymus skiltyje **Manage Server → Triggers**.

| Nustatymas | Ką daro |
| --- | --- |
| Trigger Name | Trigerio pavadinimas, rodomas šalia komandos sąraše. |
| Word to Match | Tekstas, kuriuo turi prasidėti žinutė, pavyzdžiui, /weather . Pasvirasis brūkšnys įprastas, bet neprivalomas. |
| URL Endpoint | Kur mssgs siunčia žinutę. |
| Webhook Secret | Neprivaloma. mssgs juo pasirašo kiekvieną užklausą, žr. toliau. |
| Active | Išjungia trigerį jo neištrinant. |
| Post Matching Message | Ar paties nario /weather Amsterdam lieka kanale virš tavo atsakymo. |
| Show Loading Reply | Rodo įkėlimo kortelę, kol tavo paslauga dirba. |
| Allowed User Groups | Jį paleidžia tik šių rolių nariai. Visiems kitiems tai paprasta žinutė. |

## Ką gauni

POST užklausą su JSON turiniu. Tarp antraščių yra User-Agent: mssgs-webhook/1.0 .

| Laukas | Tipas | Kas tai |
| --- | --- | --- |
| server_guid | string | Bendruomenė. |
| channel_guid | string | Kanalas, kuriame žinutė išsiųsta. |
| trigger_match | string | Atitikusi komanda, pavyzdžiui, /weather . |
| message.content | string | Visa žinutė, kartu su komanda. |
| message.member_guid | string | Siuntėjas kaip šios bendruomenės narys. |
| message.user_guid | string | To paties žmogaus paskyra, vienoda visose bendruomenėse. |
| message.group_guids | array | Nario rolės. |
| message.cms | number | Išsiuntimo laikas milisekundėmis. |
| message.is_action_button | boolean | true , kai trigerį paleido mygtukas, o ne įvesta komanda. |
| message.action_payload | object | Mygtuko payload , kai paspaudžiamas mygtukas. |
| callback_url | string | Leidžia vėliau atnaujinti ar ištrinti tavo atsakymą, 30 minučių. |
| stream_url | string | Gyvas atsakymų, reakcijų ir mygtukų paspaudimų į tavo atsakymą srautas, 10 minučių. |

### Kaip patikrinti, kam ką leidžiama

Palygink message.group_guids su rolėmis, kuriomis pasitiki, pavyzdžiui, kad /ban galėtų paleisti tik moderatoriai. Kad komanda visai neveiktų niekam kitam, nustatyk jos roles trigerio nustatymuose.

## Ką atsakai

Bet kokia 2xx būsena su JSON turiniu, iki 4 MB. Siųsk bent vieną iš message_container arba actions .

| Laukas | Tipas | Kas tai |
| --- | --- | --- |
| message_container | object | Kortelė. Čia veikia kiekvienas žinučių kortelių laukas, įskaitant būsenos ženkliuką, žymę, diff statistiką ir suskleistus samprotavimus. |
| title , description , color , ... | string | Sutrumpinimas: viršutiniame lygyje pateikti kortelės laukai už tave sudedami į kortelę. |
| actions | array | Mygtukai po kortele. Žr. mygtukai. |
| visible_to_member_guids | array | Atsakymą mato tik šie nariai. Žr. privatūs atsakymai. |

## Penkios sekundės

mssgs laukia tavo atsakymo 5 sekundes. Jei reikia ilgiau, atsakyk iškart loader kortele ir baik per callback_url , kuris galioja 30 minučių.

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

## Privatūs atsakymai

Įrašyk narių id į visible_to_member_guids , ir tavo atsakymą matys tik jie. Naudok member_guid iš užklausos, kad atsakytum tik klaususiam žmogui.

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

## Visas pavyzdys

Komanda /weather Node.js su Express, atsakanti kortele.

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

## Limitai

| Limitas | Reikšmė |
| --- | --- |
| Laikas atsakyti | 5 sekundės |
| Atsakymo dydis | 4 MB |
| Komandos vienam nariui | 5 per 5 sekundes |
| Atsakymo atnaujinimas vėliau | 30 minučių, per callback_url |
| Gyvas atsakymo srautas | 10 minučių, per stream_url |

## Kurk toliau
