---
title: "Εντολές slash: δικές σου /εντολές στην κοινότητα mssgs"
description: "Δώσε στην κοινότητά σου στο mssgs δικές της εντολές slash: το mssgs στέλνει το μήνυμα στην υπηρεσία σου και δημοσιεύει την απάντηση JSON ως κάρτα."
canonical: https://docs.mss.gs/el/commands
language: el
---

# Πρόσθεσε εντολές slash

Δώσε στην κοινότητά σου τις δικές της /εντολές . Όταν ένα μέλος πληκτρολογεί μία, το mssgs στέλνει το μήνυμα στη web υπηρεσία σου και δημοσιεύει ό,τι απαντήσει: μια κάρτα, κουμπιά ή μια απάντηση που βλέπει μόνο εκείνο το μέλος.

## Τι μπορείς να κάνεις

- **Απάντησε με κάρτα** Απάντησε με JSON και εμφανίζεται στο κανάλι ως κάρτα.

- **Μάθε ποιος ρώτησε** Παίρνεις το μέλος και τους ρόλους του, ώστε να ελέγχεις ποιος μπορεί να κάνει τι.

- **Απάντησε ιδιωτικά** Δείξε την απάντηση μόνο στο μέλος που ρώτησε.

- **Πάρε τον χρόνο σου** Απάντησε με loader μέσα σε 5 δευτερόλεπτα και ολοκλήρωσε αργότερα μέσω του callback URL.

Στην εφαρμογή

Πληκτρολόγησε / και εμφανίζονται οι εντολές της κοινότητας

#### Amsterdam

Η υπηρεσία σου απαντά, το mssgs δημοσιεύει την κάρτα

Η λίστα επιλογής και η κάρτα είναι της ίδιας της εφαρμογής. Το υποσέλιδο λέει ποιος χρησιμοποίησε ποια εντολή.

- [Γρήγορη εκκίνηση](#quick-start)

- [Ρυθμίσεις](#settings)

- [Τι λαμβάνεις](#request)

- [Τι απαντάς](#reply)

- [Πέντε δευτερόλεπτα](#timing)

- [Ιδιωτικές απαντήσεις](#private)

- [Ένα πλήρες παράδειγμα](#example)

- [Όρια](#limits)

## Γρήγορη εκκίνηση

- 1 Δημιούργησε το trigger Στην εφαρμογή για υπολογιστή, άνοιξε στην κοινότητά σου **Manage Server → Triggers** και πρόσθεσε ένα: την εντολή στην οποία αντιδρά, όπως /weather , και το URL της web υπηρεσίας σου.

### Λάβε το μήνυμα

Όταν ένα μέλος στέλνει μήνυμα που ξεκινά με /weather , το mssgs το στέλνει με POST στο 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=..."
}
```

### Απάντησε με JSON

Απάντησε μέσα σε 5 δευτερόλεπτα με status 2xx και JSON. Γίνεται κάρτα στο κανάλι.

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

## Ρυθμίσεις

Κάθε trigger έχει αυτές τις ρυθμίσεις στο **Manage Server → Triggers**.

| Ρύθμιση | Τι κάνει |
| --- | --- |
| Trigger Name | Πώς λέγεται το trigger. Εμφανίζεται δίπλα στην εντολή στη λίστα επιλογής. |
| Word to Match | Το κείμενο με το οποίο πρέπει να ξεκινά ένα μήνυμα, όπως /weather . Η κάθετος συνηθίζεται, αλλά δεν είναι υποχρεωτική. |
| URL Endpoint | Πού στέλνει το mssgs το μήνυμα. |
| Webhook Secret | Προαιρετικό. Το mssgs υπογράφει με αυτό κάθε αίτημα, δες παρακάτω. |
| Active | Απενεργοποιεί το trigger χωρίς να το διαγράψεις. |
| Post Matching Message | Αν το ίδιο το /weather Amsterdam του μέλους μένει στο κανάλι πάνω από την απάντησή σου. |
| Show Loading Reply | Δείχνει μια κάρτα φόρτωσης όσο δουλεύει η υπηρεσία σου. |
| Allowed User Groups | Μόνο μέλη με αυτούς τους ρόλους το ενεργοποιούν. Για όλους τους άλλους είναι ένα συνηθισμένο μήνυμα. |

## Τι λαμβάνεις

Ένα POST με σώμα JSON. Στις κεφαλίδες περιλαμβάνεται το User-Agent: mssgs-webhook/1.0 .

| Πεδίο | Τύπος | Τι είναι |
| --- | --- | --- |
| server_guid | string | Η κοινότητα. |
| channel_guid | string | Το κανάλι όπου στάλθηκε το μήνυμα. |
| trigger_match | string | Η εντολή που ταίριαξε, όπως /weather . |
| message.content | string | Ολόκληρο το μήνυμα, μαζί με την εντολή. |
| message.member_guid | string | Το μέλος που το έστειλε, σε αυτή την κοινότητα. |
| message.user_guid | string | Ο λογαριασμός του ίδιου ατόμου, ίδιος σε κάθε κοινότητα. |
| message.group_guids | array | Οι ρόλοι του μέλους. |
| message.cms | number | Πότε στάλθηκε, σε χιλιοστά του δευτερολέπτου. |
| message.is_action_button | boolean | true όταν το trigger το ενεργοποίησε ένα κουμπί και όχι μια πληκτρολογημένη εντολή. |
| message.action_payload | object | Το payload του κουμπιού, για πατήματα κουμπιών. |
| callback_url | string | Ενημέρωσε ή διάγραψε την απάντησή σου αργότερα, για 30 λεπτά. |
| stream_url | string | Μια ζωντανή ροή με απαντήσεις, αντιδράσεις και πατήματα κουμπιών στην απάντησή σου, για 10 λεπτά. |

### Έλεγχος του ποιος μπορεί να κάνει τι

Σύγκρινε το message.group_guids με τους ρόλους που εμπιστεύεσαι, για παράδειγμα ώστε μόνο οι συντονιστές να μπορούν να τρέξουν το /ban . Για να κρατήσεις μια εντολή εντελώς μακριά από όλους τους άλλους, όρισε τους ρόλους της στις ρυθμίσεις του trigger.

## Τι απαντάς

Οποιοδήποτε status 2xx με σώμα JSON, έως 4 MB. Στείλε τουλάχιστον ένα από τα message_container ή actions .

| Πεδίο | Τύπος | Τι είναι |
| --- | --- | --- |
| message_container | object | Η κάρτα. Κάθε πεδίο των καρτών μηνυμάτων λειτουργεί εδώ, μαζί με την ένδειξη κατάστασης, το badge, τα στατιστικά diff και τον διπλωμένο συλλογισμό. |
| title , description , color , ... | string | Συντομογραφία: τα πεδία κάρτας στο ανώτερο επίπεδο τυλίγονται για σένα σε μια κάρτα. |
| actions | array | Κουμπιά κάτω από την κάρτα. Δες τα κουμπιά. |
| visible_to_member_guids | array | Μόνο αυτά τα μέλη βλέπουν την απάντηση. Δες τις ιδιωτικές απαντήσεις. |

## Πέντε δευτερόλεπτα

Το mssgs περιμένει 5 δευτερόλεπτα για την απάντησή σου. Αν χρειάζεσαι περισσότερο χρόνο, απάντησε αμέσως με μια κάρτα loader και ολοκλήρωσε μέσω του callback_url , που ισχύει για 30 λεπτά.

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

## Ιδιωτικές απαντήσεις

Βάλε ids μελών στο visible_to_member_guids και μόνο εκείνα βλέπουν την απάντησή σου. Χρησιμοποίησε το member_guid από το αίτημα για να απαντήσεις μόνο στο άτομο που ρώτησε.

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

## Ένα πλήρες παράδειγμα

Μια εντολή /weather σε Node.js με Express, που απαντά με κάρτα.

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

## Όρια

| Όριο | Τιμή |
| --- | --- |
| Χρόνος για απάντηση | 5 δευτερόλεπτα |
| Μέγεθος απάντησης | 4 MB |
| Εντολές ανά μέλος | 5 ανά 5 δευτερόλεπτα |
| Ενημέρωση της απάντησης αργότερα | 30 λεπτά, μέσω callback_url |
| Ζωντανή ροή της απάντησης | 10 λεπτά, μέσω stream_url |

## Συνέχισε να φτιάχνεις
