---
title: "Comenzi slash: adaugă /comenzi în comunitatea ta mssgs"
description: "Dă-i comunității tale mssgs comenzi slash proprii: mssgs trimite mesajul la serviciul tău web și postează răspunsul JSON ca un card. Configurare și limite."
canonical: https://docs.mss.gs/ro/commands
language: ro
---

# Adaugă comenzi slash

Dă-i comunității tale propriile /comenzi . Când un membru tastează una, mssgs trimite mesajul la serviciul tău web și postează ce răspunde acesta: un card, butoane sau un răspuns pe care doar membrul respectiv îl vede.

## Ce poți face

- **Răspunde cu un card** Răspunde cu JSON, iar acesta apare în canal ca un card.

- **Află cine a întrebat** Primești membrul și rolurile lui, așa că poți verifica cine ce are voie să facă.

- **Răspunde în privat** Arată răspunsul doar membrului care a întrebat.

- **Fără grabă** Răspunde cu un loader în 5 secunde, apoi termină prin URL-ul de callback.

În aplicație

Tastează / și apar comenzile comunității

#### Amsterdam

Serviciul tău răspunde, mssgs postează cardul

Lista de comenzi și cardul sunt chiar cele din aplicație. Subsolul arată cine a folosit ce comandă.

- [Start rapid](#quick-start)

- [Setări](#settings)

- [Ce primești](#request)

- [Ce răspunzi](#reply)

- [Cinci secunde](#timing)

- [Răspunsuri private](#private)

- [Un exemplu complet](#example)

- [Limite](#limits)

## Start rapid

- 1 Creează triggerul În aplicația desktop, deschide în comunitatea ta **Manage Server → Triggers** și adaugă unul: comanda la care reacționează, de exemplu /weather , și URL-ul serviciului tău web.

### Primește mesajul

Când un membru trimite un mesaj care începe cu /weather , mssgs îl trimite cu POST la URL-ul tău:

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

### Răspunde cu JSON

Răspunde în 5 secunde cu un status 2xx și JSON. Acesta devine un card în canal.

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

## Setări

Fiecare trigger are aceste setări în **Manage Server → Triggers**.

| Setare | Ce face |
| --- | --- |
| Trigger Name | Numele triggerului, afișat lângă comandă în lista de comenzi. |
| Word to Match | Textul cu care trebuie să înceapă un mesaj, de exemplu /weather . Slash-ul este obișnuit, nu obligatoriu. |
| URL Endpoint | Unde trimite mssgs mesajul. |
| Webhook Secret | Opțional. mssgs semnează cu el fiecare cerere, vezi mai jos. |
| Active | Dezactivează triggerul fără să-l ștergi. |
| Post Matching Message | Dacă mesajul membrului, de exemplu /weather Amsterdam , rămâne în canal deasupra răspunsului tău. |
| Show Loading Reply | Afișează un card de încărcare cât timp lucrează serviciul tău. |
| Allowed User Groups | Doar membrii cu aceste roluri îl declanșează. Pentru oricine altcineva este un mesaj obișnuit. |

## Ce primești

Un POST cu un corp JSON. Printre antete se află User-Agent: mssgs-webhook/1.0 .

| Câmp | Tip | Ce este |
| --- | --- | --- |
| server_guid | string | Comunitatea. |
| channel_guid | string | Canalul în care a fost trimis mesajul. |
| trigger_match | string | Comanda care s-a potrivit, de exemplu /weather . |
| message.content | string | Întregul mesaj, inclusiv comanda. |
| message.member_guid | string | Membrul care l-a trimis, în această comunitate. |
| message.user_guid | string | Contul aceleiași persoane, același în fiecare comunitate. |
| message.group_guids | array | Rolurile pe care le are membrul. |
| message.cms | number | Când a fost trimis, în milisecunde. |
| message.is_action_button | boolean | true când triggerul a fost declanșat de un buton, nu de o comandă tastată. |
| message.action_payload | object | payload -ul butonului, la apăsările de butoane. |
| callback_url | string | Actualizează sau șterge răspunsul tău mai târziu, timp de 30 de minute. |
| stream_url | string | Un flux live cu răspunsurile, reacțiile și apăsările de butoane de pe răspunsul tău, timp de 10 minute. |

### Verificarea a cine ce are voie

Compară message.group_guids cu rolurile în care ai încredere, de exemplu ca doar moderatorii să poată rula /ban . Ca o comandă să nu fie deloc la îndemâna altora, setează-i rolurile în setările triggerului.

## Ce răspunzi

Orice status 2xx cu un corp JSON, de până la 4 MB. Trimite cel puțin unul dintre message_container și actions .

| Câmp | Tip | Ce este |
| --- | --- | --- |
| message_container | object | Cardul. Aici funcționează toate câmpurile cardurilor de mesaj, inclusiv eticheta de status, badge-ul, statisticile de diff și raționamentul pliat. |
| title , description , color , ... | string | Scurtătură: câmpurile de card puse la nivelul de sus sunt împachetate automat într-un card. |
| actions | array | Butoane sub card. Vezi butoane. |
| visible_to_member_guids | array | Doar acești membri văd răspunsul. Vezi răspunsuri private. |

## Cinci secunde

mssgs așteaptă răspunsul tău 5 secunde. Dacă ai nevoie de mai mult, răspunde imediat cu un card de tip loader și termină prin callback_url , care rămâne valabil 30 de minute.

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

## Răspunsuri private

Pune id-uri de membri în visible_to_member_guids și doar ei îți vor vedea răspunsul. Folosește member_guid din cerere ca să-i răspunzi doar persoanei care a întrebat.

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

## Un exemplu complet

O comandă /weather în Node.js cu Express, care răspunde cu un card.

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

## Limite

| Limită | Valoare |
| --- | --- |
| Timp de răspuns | 5 secunde |
| Dimensiunea răspunsului | 4 MB |
| Comenzi per membru | 5 la fiecare 5 secunde |
| Actualizarea răspunsului ulterior | 30 de minute, prin callback_url |
| Fluxul live al răspunsului | 10 minute, prin stream_url |

## Construiește mai departe
