Lisa kaldkriipsukäsud
Anna oma kogukonnale omad /käsud. Kui liige mõne neist sisestab, saadab mssgs sõnumi sinu veebiteenusele ja postitab selle vastuse: kaardi, nupud või vastuse, mida näeb ainult tema.
Mida saad teha
- Vasta kaardigaVasta JSON-iga ja see ilmub kanalisse kaardina.
- Tea, kes küsisSaad liikme ja tema rollid, nii et saad kontrollida, kes mida teha tohib.
- Vasta privaatseltNäita vastust ainult liikmele, kes küsis.
- Võta aegaVasta 5 sekundi jooksul laadimiskaardiga ja lõpeta hiljem callback URL-i kaudu.
Rakenduses
Sisesta / ja kogukonna käsud ilmuvad
Sinu teenus vastab, mssgs postitab kaardi
Valikuloend ja kaart on rakenduse enda omad. Jalus ütleb, kes millist käsku kasutas.
Kiirstart
Loo trigger
Ava arvutirakenduses oma kogukonna Manage Server → Triggers ja lisa trigger: käsk, millele see reageerib, näiteks
/weather, ja sinu veebiteenuse URL.Võta sõnum vastu
Kui liige saadab sõnumi, mis algab sõnaga
/weather, saadab mssgs selle POST-päringuga sinu URL-ile: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=..." }Vasta JSON-iga
Vasta 5 sekundi jooksul olekukoodiga 2xx ja JSON-iga. Sellest saab kanalis kaart.
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%" } ] } }general
Seaded
Igal triggeril on jaotises Manage Server → Triggers need seaded.
| Seade | Mida see teeb |
|---|---|
| Trigger Name | Triggeri nimi, mida näidatakse valikuloendis käsu kõrval. |
| Word to Match | Tekst, millega sõnum peab algama, näiteks /weather. Kaldkriips on tavaline, aga mitte kohustuslik. |
| URL Endpoint | Kuhu mssgs sõnumi saadab. |
| Webhook Secret | Valikuline. mssgs allkirjastab sellega iga päringu, vaata allpool. |
| Active | Lülita trigger välja ilma seda kustutamata. |
| Post Matching Message | Kas liikme enda sõnum /weather Amsterdam jääb kanalisse sinu vastuse kohale. |
| Show Loading Reply | Näita laadimiskaarti, kuni sinu teenus töötab. |
| Allowed User Groups | Triggerit käivitavad ainult nende rollidega liikmed. Kõigi teiste jaoks on see tavaline sõnum. |
/deploy ja /deploy-prod: pole kindel, kumb käivitub. Botide sõnumid ja edasisaadetud sõnumid ei käivita triggerit kunagi.Mida sa saad
POST-päringu JSON-kehaga. Päiste hulgas on User-Agent: mssgs-webhook/1.0.
| Väli | Tüüp | Mis see on |
|---|---|---|
server_guid | string | Kogukond. |
channel_guid | string | Kanal, kuhu sõnum saadeti. |
trigger_match | string | Sobitunud käsk, näiteks /weather. |
message.content | string | Kogu sõnum koos käsuga. |
message.member_guid | string | Saatnud liige selles kogukonnas. |
message.user_guid | string | Sama inimese konto, igas kogukonnas sama. |
message.group_guids | array | Liikme rollid. |
message.cms | number | Saatmise aeg millisekundites. |
message.is_action_button | boolean | true, kui triggeri käivitas nupp, mitte sisestatud käsk. |
message.action_payload | object | Nupu payload, nupuvajutuste puhul. |
callback_url | string | Uuenda või kustuta oma vastus hiljem, 30 minuti jooksul. |
stream_url | string | Reaalajas voog sinu vastusele tulnud vastustest, reaktsioonidest ja nupuvajutustest, 10 minuti jooksul. |
X-Mssgs-Signature: sha256=<hex>: toore päringukeha HMAC-SHA256 sinu secretiga. Arvuta see ise ja võrdle, enne kui päringut usaldad.Kes mida teha tohib
Võrdle välja message.group_guids rollidega, keda usaldad, näiteks et ainult moderaatorid saaksid käivitada käsku /ban. Et käsk kõigi teiste eest täielikult peita, määra selle rollid triggeri seadetes.
Mida sa vastad
Mis tahes olekukood 2xx koos JSON-kehaga, kuni 4 MB. Saada vähemalt üks väljadest message_container või actions.
| Väli | Tüüp | Mis see on |
|---|---|---|
message_container | object | Kaart. Siin töötab iga sõnumikaardi väli, sealhulgas olekusilt, märk, diff-statistika ja kokkuvolditud arutluskäik. |
title, description, color, ... | string | Lühivorm: ülemisel tasemel olevad kaardi väljad pakitakse sinu eest kaardiks. |
actions | array | Nupud kaardi all. Vaata nuppude lehte. |
visible_to_member_guids | array | Vastust näevad ainult need liikmed. Vaata privaatseid vastuseid. |
content ei ole käsu vastuse kaardil nähtav, nii et pane kõik oluline kaardi enda sisse.Viis sekundit
mssgs ootab sinu vastust 5 sekundit. Kui vajad rohkem aega, vasta kohe laadimiskaardiga ja lõpeta aadressi callback_url kaudu, mis kehtib 30 minutit.
// 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 } })
});Privaatsed vastused
Pane liikmete id-d välja visible_to_member_guids ja ainult nemad näevad sinu vastust. Kasuta päringust saadud väärtust member_guid, et vastata ainult küsijale.
{
"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äielik näide
Käsk /weather Node.js-is koos Expressiga, mis vastab kaardiga.
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);Piirangud
| Piirang | Väärtus |
|---|---|
| Vastamise aeg | 5 sekundit |
| Vastuse suurus | 4 MB |
| Käske liikme kohta | 5 iga 5 sekundi jooksul |
| Vastuse hilisem uuendamine | 30 minutit, aadressi callback_url kaudu |
| Vastuse reaalajas voog | 10 minutit, aadressi stream_url kaudu |