Liigu põhisisu juurde
Arendajad Kaldkriipsukäsud

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

  1. Loo trigger

    Ava arvutirakenduses oma kogukonna Manage Server → Triggers ja lisa trigger: käsk, millele see reageerib, näiteks /weather, ja sinu veebiteenuse URL.

  2. 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=..."
    }
  3. 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
    maya18:45
    /weather Amsterdam
    System
    Message from Weekend Crew

    Amsterdam

    14 °C, kerge vihm kuni 16:00
    Wind
    SW 18 km/h
    Humidity
    82%

Seaded

Igal triggeril on jaotises Manage Server → Triggers need seaded.

SeadeMida see teeb
Trigger NameTriggeri nimi, mida näidatakse valikuloendis käsu kõrval.
Word to MatchTekst, millega sõnum peab algama, näiteks /weather. Kaldkriips on tavaline, aga mitte kohustuslik.
URL EndpointKuhu mssgs sõnumi saadab.
Webhook SecretValikuline. mssgs allkirjastab sellega iga päringu, vaata allpool.
ActiveLülita trigger välja ilma seda kustutamata.
Post Matching MessageKas liikme enda sõnum /weather Amsterdam jääb kanalisse sinu vastuse kohale.
Show Loading ReplyNäita laadimiskaarti, kuni sinu teenus töötab.
Allowed User GroupsTriggerit käivitavad ainult nende rollidega liikmed. Kõigi teiste jaoks on see tavaline sõnum.
Võrreldakse sõnumi algust. Väldi käske, millest üks algab teisega, nagu /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äliTüüpMis see on
server_guidstringKogukond.
channel_guidstringKanal, kuhu sõnum saadeti.
trigger_matchstringSobitunud käsk, näiteks /weather.
message.contentstringKogu sõnum koos käsuga.
message.member_guidstringSaatnud liige selles kogukonnas.
message.user_guidstringSama inimese konto, igas kogukonnas sama.
message.group_guidsarrayLiikme rollid.
message.cmsnumberSaatmise aeg millisekundites.
message.is_action_buttonbooleantrue, kui triggeri käivitas nupp, mitte sisestatud käsk.
message.action_payloadobjectNupu payload, nupuvajutuste puhul.
callback_urlstringUuenda või kustuta oma vastus hiljem, 30 minuti jooksul.
stream_urlstringReaalajas voog sinu vastusele tulnud vastustest, reaktsioonidest ja nupuvajutustest, 10 minuti jooksul.
Kui secret on määratud, kannab päring päist 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äliTüüpMis see on
message_containerobjectKaart. Siin töötab iga sõnumikaardi väli, sealhulgas olekusilt, märk, diff-statistika ja kokkuvolditud arutluskäik.
title, description, color, ...stringLühivorm: ülemisel tasemel olevad kaardi väljad pakitakse sinu eest kaardiks.
actionsarrayNupud kaardi all. Vaata nuppude lehte.
visible_to_member_guidsarrayVastust näevad ainult need liikmed. Vaata privaatseid vastuseid.
Kaardi päis näitab sinu kogukonna nime ja jalus ütleb, kes käsku kasutas: „maya triggered /weather command“. Avatar on liikme oma.
Vasta alati kaardiga: rida 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.

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 } })
});
Kui sinu teenus ei vasta õigel ajal või vastab veaga, näeb käsku kasutanud liige punast kaarti „Failed“. Keegi teine seda ei näe.

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.

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äielik näide

Käsk /weather Node.js-is koos Expressiga, mis vastab kaardiga.

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

Piirangud

PiirangVäärtus
Vastamise aeg5 sekundit
Vastuse suurus4 MB
Käske liikme kohta5 iga 5 sekundi jooksul
Vastuse hilisem uuendamine30 minutit, aadressi callback_url kaudu
Vastuse reaalajas voog10 minutit, aadressi stream_url kaudu

Ehita edasi