---
title: "Kauttaviivakomennot: lisää /komentoja mssgs-yhteisöösi"
description: "Lisää mssgs-yhteisöösi kauttaviivakomentoja: mssgs lähettää viestin verkkopalveluusi ja julkaisee JSON-vastauksesi korttina. Asetukset, pyyntö, vastaus ja rajat."
canonical: https://mss.gs/fi/docs/commands
language: fi
---

# Lisää kauttaviivakomentoja

Anna yhteisöllesi omat /komennot . Kun jäsen kirjoittaa sellaisen, mssgs lähettää viestin verkkopalveluusi ja julkaisee sen vastauksen: kortin, painikkeita tai vastauksen, jonka vain hän näkee.

## Mitä voit tehdä

- **Vastaa kortilla** Vastaa JSONilla, niin vastaus ilmestyy kanavalle korttina.

- **Tiedä, kuka kysyi** Saat jäsenen ja hänen roolinsa, joten voit tarkistaa, kuka saa tehdä mitä.

- **Vastaa yksityisesti** Näytä vastaus vain kysyneelle jäsenelle.

- **Ota aikaa** Vastaa latauskortilla 5 sekunnissa ja viimeistele callback-URL:n kautta.

Sovelluksessa

Kirjoita /, niin yhteisön komennot tulevat näkyviin

#### Amsterdam

Palvelusi vastaa, mssgs julkaisee kortin

Valitsin ja kortti ovat sovelluksen omia. Alatunniste kertoo, kuka käytti mitäkin komentoa.

- [Pika-aloitus](#quick-start)

- [Asetukset](#settings)

- [Mitä saat](#request)

- [Mitä vastaat](#reply)

- [Viisi sekuntia](#timing)

- [Yksityiset vastaukset](#private)

- [Täysi esimerkki](#example)

- [Rajat](#limits)

## Pika-aloitus

- 1 Luo liipaisin Avaa työpöytäsovelluksessa yhteisösi **Hallitse palvelinta → Liipaisimet** ja lisää liipaisin: komento, johon se reagoi, esimerkiksi /weather , ja verkkopalvelusi URL.

### Vastaanota viesti

Kun jäsen lähettää viestin, joka alkaa /weather , mssgs lähettää sen POST-pyynnöllä URL:iisi:

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

### Vastaa JSONilla

Vastaa 5 sekunnin kuluessa 2xx-tilakoodilla ja JSONilla. Vastauksesta tulee kortti kanavalle.

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

## Asetukset

Jokaisella liipaisimella on nämä asetukset kohdassa **Hallitse palvelinta → Liipaisimet**.

| Asetus | Mitä se tekee |
| --- | --- |
| Liipaisimen nimi | Nimi, joka näkyy komennon vieressä valitsimessa. |
| Tunnistettava sana | Teksti, jolla viestin on alettava, esimerkiksi /weather . Kauttaviiva on tavallinen, ei pakollinen. |
| URL-osoite | Minne mssgs lähettää viestin. |
| Webhookin salaisuus | Valinnainen. mssgs allekirjoittaa jokaisen pyynnön sillä, katso alta. |
| Aktiivinen | Kytke liipaisin pois päältä poistamatta sitä. |
| Julkaise tunnistettu viesti | Jääkö jäsenen oma /weather Amsterdam kanavalle vastauksesi yläpuolelle. |
| Näytä latausvastaus | Näytä latauskortti sillä aikaa, kun palvelusi työskentelee. |
| Sallitut käyttäjäryhmät | Vain näiden roolien jäsenet laukaisevat sen. Muille se on tavallinen viesti. |

## Mitä saat

POST-pyynnön, jossa on JSON-body. Headereissa on mukana User-Agent: mssgs-webhook/1.0 .

| Kenttä | Tyyppi | Mikä se on |
| --- | --- | --- |
| server_guid | string | Yhteisö. |
| channel_guid | string | Kanava, jolle viesti lähetettiin. |
| trigger_match | string | Komento, joka täsmäsi, esimerkiksi /weather . |
| message.content | string | Koko viesti, komento mukaan lukien. |
| message.member_guid | string | Jäsen, joka lähetti viestin, tässä yhteisössä. |
| message.user_guid | string | Saman henkilön tili, sama kaikissa yhteisöissä. |
| message.group_guids | array | Jäsenen roolit. |
| message.cms | number | Lähetysaika millisekunteina. |
| message.is_action_button | boolean | true , kun liipaisimen laukaisi painike eikä kirjoitettu komento. |
| message.action_payload | object | Painikkeen payload painalluksissa. |
| callback_url | string | Päivitä tai poista vastauksesi myöhemmin, 30 minuutin ajan. |
| stream_url | string | Reaaliaikainen virta vastaukseesi tulevista vastauksista, reaktioista ja painikkeiden painalluksista, 10 minuutin ajan. |

### Kuka saa tehdä mitä

Vertaa message.group_guids -kenttää rooleihin, joihin luotat, esimerkiksi jotta vain moderaattorit voivat ajaa komennon /ban . Jos haluat pitää komennon kokonaan poissa muilta, aseta sen roolit liipaisimen asetuksissa.

## Mitä vastaat

Mikä tahansa 2xx-tilakoodi ja JSON-body, enintään 4 MB. Lähetä ainakin toinen kentistä message_container ja actions .

| Kenttä | Tyyppi | Mikä se on |
| --- | --- | --- |
| message_container | object | Kortti. Jokainen viestikorttien kenttä toimii tässä, myös tilapilleri, merkki, diff-luvut ja kokoontaitettu päättely. |
| title , description , color , ... | string | Lyhennys: ylätason korttikentät kääritään korttiin puolestasi. |
| actions | array | Painikkeet kortin alla. Katso painikkeet. |
| visible_to_member_guids | array | Vain nämä jäsenet näkevät vastauksen. Katso yksityiset vastaukset. |

## Viisi sekuntia

mssgs odottaa vastaustasi 5 sekuntia. Jos tarvitset enemmän aikaa, vastaa heti latauskortilla ja viimeistele callback_url -osoitteen kautta, joka on voimassa 30 minuuttia.

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

## Yksityiset vastaukset

Laita jäsenten id:t kenttään visible_to_member_guids , niin vain he näkevät vastauksesi. Käytä pyynnön member_guid -arvoa, kun haluat vastata vain kysyjälle.

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

## Täysi esimerkki

/weather -komento Node.js:llä ja Expressillä, vastauksena kortti.

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

## Rajat

| Raja | Arvo |
| --- | --- |
| Vastausaika | 5 sekuntia |
| Vastauksen koko | 4 MB |
| Komentoja jäsentä kohden | 5 / 5 sekuntia |
| Vastauksen päivittäminen jälkikäteen | 30 minuuttia, callback_url -osoitteen kautta |
| Vastauksen reaaliaikainen virta | 10 minuuttia, stream_url -osoitteen kautta |

## Jatka rakentamista
