---
title: "Ukazi s poševnico: lastni /ukazi v skupnosti mssgs"
description: "Daj svoji skupnosti mssgs ukaze s poševnico: mssgs pošlje sporočilo tvoji spletni storitvi in njen odgovor JSON objavi kot kartico. Nastavitev in omejitve."
canonical: https://docs.mss.gs/sl/commands
language: sl
---

# Dodaj ukaze s poševnico

Daj svoji skupnosti lastne /ukaze . Ko član vtipka enega, mssgs sporočilo pošlje tvoji spletni storitvi in objavi njen odgovor: kartico, gumbe ali odgovor, ki ga vidi samo on.

## Kaj lahko narediš

- **Odgovori s kartico** Odgovori z JSON-om in v kanalu se prikaže kot kartica.

- **Vedi, kdo sprašuje** Dobiš člana in njegove vloge, zato lahko preveriš, kdo sme kaj.

- **Odgovori zasebno** Odgovor pokaži samo članu, ki je vprašal.

- **Brez naglice** V 5 sekundah odgovori z indikatorjem nalaganja, nato končaj prek callback URL-ja.

V aplikaciji

Vtipkaj / in prikažejo se ukazi skupnosti

#### Amsterdam

Tvoja storitev odgovori, mssgs objavi kartico

Izbirnik in kartica sta del same aplikacije. Noga pove, kdo je uporabil kateri ukaz.

- [Hiter začetek](#quick-start)

- [Nastavitve](#settings)

- [Kaj prejmeš](#request)

- [Kaj odgovoriš](#reply)

- [Pet sekund](#timing)

- [Zasebni odgovori](#private)

- [Celoten primer](#example)

- [Omejitve](#limits)

## Hiter začetek

- 1 Ustvari trigger V namizni aplikaciji v svoji skupnosti odpri **Manage Server → Triggers** in dodaj trigger: ukaz, na katerega se odzove, na primer /weather , in URL tvoje spletne storitve.

### Prejmi sporočilo

Ko član pošlje sporočilo, ki se začne z /weather , ga mssgs z zahtevo POST pošlje na tvoj 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=..."
}
```

### Odgovori z JSON-om

V 5 sekundah odgovori s statusom 2xx in JSON-om. V kanalu postane kartica.

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

## Nastavitve

Vsak trigger ima v **Manage Server → Triggers** te nastavitve.

| Nastavitev | Kaj naredi |
| --- | --- |
| Trigger Name | Ime triggerja, prikazano ob ukazu v izbirniku. |
| Word to Match | Besedilo, s katerim se mora sporočilo začeti, na primer /weather . Poševnica je običajna, ni pa obvezna. |
| URL Endpoint | Kam mssgs pošlje sporočilo. |
| Webhook Secret | Neobvezno. mssgs z njim podpiše vsako zahtevo, glej spodaj. |
| Active | Izklopi trigger, ne da bi ga izbrisal. |
| Post Matching Message | Ali članovo sporočilo, na primer /weather Amsterdam , ostane v kanalu nad tvojim odgovorom. |
| Show Loading Reply | Prikaže kartico z indikatorjem nalaganja, medtem ko tvoja storitev dela. |
| Allowed User Groups | Sprožijo ga le člani s temi vlogami. Za vse druge je to navadno sporočilo. |

## Kaj prejmeš

Zahtevo POST s telesom JSON. Med glavami je User-Agent: mssgs-webhook/1.0 .

| Polje | Tip | Kaj je |
| --- | --- | --- |
| server_guid | string | Skupnost. |
| channel_guid | string | Kanal, v katerem je bilo sporočilo poslano. |
| trigger_match | string | Ukaz, ki se je ujemal, na primer /weather . |
| message.content | string | Celotno sporočilo, skupaj z ukazom. |
| message.member_guid | string | Član, ki ga je poslal, v tej skupnosti. |
| message.user_guid | string | Račun iste osebe, enak v vsaki skupnosti. |
| message.group_guids | array | Vloge, ki jih ima član. |
| message.cms | number | Kdaj je bilo poslano, v milisekundah. |
| message.is_action_button | boolean | true , ko je trigger sprožil gumb in ne vtipkan ukaz. |
| message.action_payload | object | payload gumba, pri pritiskih gumbov. |
| callback_url | string | Z njim lahko odgovor še 30 minut posodobiš ali izbrišeš. |
| stream_url | string | Tok v živo z odgovori, reakcijami in pritiski gumbov na tvoj odgovor, 10 minut. |

### Preverjanje, kdo sme kaj

Primerjaj message.group_guids z vlogami, ki jim zaupaš, na primer da lahko /ban zaženejo samo moderatorji. Če želiš ukaz vsem drugim povsem skriti, mu nastavi vloge v nastavitvah triggerja.

## Kaj odgovoriš

Kateri koli status 2xx s telesom JSON, do 4 MB. Pošlji vsaj eno od polj message_container ali actions .

| Polje | Tip | Kaj je |
| --- | --- | --- |
| message_container | object | Kartica. Tu deluje vsako polje kartic sporočil, vključno z oznako stanja, značko, statistiko sprememb in skritim razmišljanjem. |
| title , description , color , ... | string | Okrajšava: polja kartice na najvišji ravni se samodejno zavijejo v kartico. |
| actions | array | Gumbi pod kartico. Glej gumbe. |
| visible_to_member_guids | array | Odgovor vidijo samo ti člani. Glej zasebne odgovore. |

## Pet sekund

mssgs na tvoj odgovor čaka 5 sekund. Če potrebuješ več časa, takoj odgovori s kartico z indikatorjem nalaganja in končaj prek callback_url , ki velja 30 minut.

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

## Zasebni odgovori

V visible_to_member_guids vpiši ID-je članov in tvoj odgovor vidijo samo oni. Uporabi member_guid iz zahteve, da odgovoriš le osebi, ki je vprašala.

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

## Celoten primer

Ukaz /weather v Node.js z Expressom, ki odgovori s kartico.

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

## Omejitve

| Omejitev | Vrednost |
| --- | --- |
| Čas za odgovor | 5 sekund |
| Velikost odgovora | 4 MB |
| Ukazi na člana | 5 vsakih 5 sekund |
| Posodabljanje odgovora pozneje | 30 minut, prek callback_url |
| Tok odgovora v živo | 10 minut, prek stream_url |

## Gradi naprej
