---
title: "Slash-kommandoer: tilføj /kommandoer til dit mssgs-fællesskab"
description: "Giv dit mssgs-fællesskab egne slash-kommandoer: mssgs sender beskeden til din webtjeneste og poster dit JSON-svar som et kort. Opsætning, svar og grænser."
canonical: https://mss.gs/da/docs/commands
language: da
---

# Tilføj slash-kommandoer

Giv dit fællesskab sine egne /kommandoer . Når et medlem skriver en, sender mssgs beskeden til din webtjeneste og poster det, den svarer: et kort, knapper, et svar, som kun medlemmet kan se.

## Det kan du

- **Svar med et kort** Svar med JSON, så dukker det op i kanalen som et kort.

- **Vid, hvem der spurgte** Du får medlemmet og medlemmets roller, så du kan tjekke, hvem der må hvad.

- **Svar privat** Vis kun svaret for det medlem, der spurgte.

- **Tag den tid, du skal bruge** Svar med en loader inden for 5 sekunder, og gør det færdigt gennem callback-URL'en.

I appen

Skriv /, så vises fællesskabets kommandoer

#### Amsterdam

Din tjeneste svarer, mssgs poster kortet

Vælgeren og kortet er appens egne. Bunden af kortet viser, hvem der brugte hvilken kommando.

- [Kom godt i gang](#quick-start)

- [Indstillinger](#settings)

- [Det modtager du](#request)

- [Det svarer du](#reply)

- [Fem sekunder](#timing)

- [Private svar](#private)

- [Et fuldt eksempel](#example)

- [Grænser](#limits)

## Kom godt i gang

- 1 Opret triggeren Åbn **Administrer fællesskab → Triggere** for dit fællesskab i desktop-appen, og tilføj en: den kommando, den reagerer på, som /weather , og URL'en til din webtjeneste.

### Modtag beskeden

Når et medlem sender en besked, der starter med /weather , sender mssgs den med POST til din 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=..."
}
```

### Svar med JSON

Svar inden for 5 sekunder med en 2xx-status og JSON. Det bliver til et kort i kanalen.

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

## Indstillinger

Hver trigger har disse indstillinger under **Administrer fællesskab → Triggere**.

| Indstilling | Hvad den gør |
| --- | --- |
| Triggernavn | Hvad triggeren hedder, vist ved siden af kommandoen i vælgeren. |
| Ord, der skal matches | Den tekst, en besked skal starte med, som /weather . En skråstreg er det normale, men ikke påkrævet. |
| URL-endpoint | Hvor mssgs sender beskeden hen. |
| Webhook-hemmelighed | Valgfri. mssgs signerer hver request med den, se nedenfor. |
| Aktiv | Slå triggeren fra uden at slette den. |
| Post den matchende besked | Om medlemmets egen /weather Amsterdam bliver stående i kanalen over dit svar. |
| Vis indlæsningssvar | Vis et indlæsningskort, mens din tjeneste arbejder. |
| Tilladte brugergrupper | Kun medlemmer med disse roller udløser den. For alle andre er det en almindelig besked. |

## Det modtager du

En POST med en JSON-body. Headerne indeholder User-Agent: mssgs-webhook/1.0 .

| Felt | Type | Hvad det er |
| --- | --- | --- |
| server_guid | string | Fællesskabet. |
| channel_guid | string | Den kanal, beskeden blev sendt i. |
| trigger_match | string | Den kommando, der matchede, som /weather . |
| message.content | string | Hele beskeden, inklusive kommandoen. |
| message.member_guid | string | Det medlem, der sendte den, i dette fællesskab. |
| message.user_guid | string | Den samme persons konto, den samme i alle fællesskaber. |
| message.group_guids | array | Medlemmets roller. |
| message.cms | number | Hvornår den blev sendt, i millisekunder. |
| message.is_action_button | boolean | true , når en knap udløste triggeren og ikke en skrevet kommando. |
| message.action_payload | object | Knappens payload , ved tryk på knapper. |
| callback_url | string | Opdatér eller slet dit svar senere, i 30 minutter. |
| stream_url | string | En live stream af svar, reaktioner og tryk på knapper på dit svar, i 10 minutter. |

### Tjek, hvem der må hvad

Sammenlign message.group_guids med de roller, du stoler på, for eksempel for kun at lade moderatorer køre /ban . Vil du holde en kommando helt væk fra alle andre, så sæt dens roller i triggerens indstillinger.

## Det svarer du

En hvilken som helst 2xx-status med en JSON-body på op til 4 MB. Send mindst én af message_container eller actions .

| Felt | Type | Hvad det er |
| --- | --- | --- |
| message_container | object | Kortet. Alle felter fra beskedkort virker her, inklusive statuspillen, mærket, diff-statistikken og det sammenfoldede ræsonnement. |
| title , description , color , ... | string | Genvej: kortfelter på øverste niveau bliver pakket ind i et kort for dig. |
| actions | array | Knapper under kortet. Se knapper. |
| visible_to_member_guids | array | Kun disse medlemmer ser svaret. Se private svar. |

## Fem sekunder

mssgs venter 5 sekunder på dit svar. Har du brug for mere tid, så svar med det samme med et loader-kort, og gør det færdigt gennem callback_url , som er gyldig i 30 minutter.

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

## Private svar

Læg medlems-id'er i visible_to_member_guids , så er det kun dem, der ser dit svar. Brug member_guid fra requesten, hvis kun den, der spurgte, skal se svaret.

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

## Et fuldt eksempel

En /weather -kommando i Node.js med Express, der svarer med et kort.

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

## Grænser

| Grænse | Værdi |
| --- | --- |
| Tid til at svare | 5 sekunder |
| Svarets størrelse | 4 MB |
| Kommandoer pr. medlem | 5 hvert 5. sekund |
| Opdatering af svaret bagefter | 30 minutter, gennem callback_url |
| Live stream af svaret | 10 minutter, gennem stream_url |

## Byg videre
