Siirry pääsisältöön
Kehittäjät Kauttaviivakomennot

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 kortillaVastaa JSONilla, niin vastaus ilmestyy kanavalle korttina.
  • Tiedä, kuka kysyiSaat jäsenen ja hänen roolinsa, joten voit tarkistaa, kuka saa tehdä mitä.
  • Vastaa yksityisestiNäytä vastaus vain kysyneelle jäsenelle.
  • Ota aikaaVastaa latauskortilla 5 sekunnissa ja viimeistele callback-URL:n kautta.

Sovelluksessa

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

Palvelusi vastaa, mssgs julkaisee kortin

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

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.

  2. 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=..."
    }
  3. 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%" }
        ]
      }
    }
    general
    maya18:45
    /weather Amsterdam
    System
    Viesti lähettäjältä Weekend Crew

    Amsterdam

    14 °C, heikkoa sadetta klo 16.00 asti
    Wind
    SW 18 km/h
    Humidity
    82%

Asetukset

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

AsetusMitä se tekee
Liipaisimen nimiNimi, joka näkyy komennon vieressä valitsimessa.
Tunnistettava sanaTeksti, jolla viestin on alettava, esimerkiksi /weather. Kauttaviiva on tavallinen, ei pakollinen.
URL-osoiteMinne mssgs lähettää viestin.
Webhookin salaisuusValinnainen. mssgs allekirjoittaa jokaisen pyynnön sillä, katso alta.
AktiivinenKytke liipaisin pois päältä poistamatta sitä.
Julkaise tunnistettu viestiJääkö jäsenen oma /weather Amsterdam kanavalle vastauksesi yläpuolelle.
Näytä latausvastausNäytä latauskortti sillä aikaa, kun palvelusi työskentelee.
Sallitut käyttäjäryhmätVain näiden roolien jäsenet laukaisevat sen. Muille se on tavallinen viesti.
Vertailu tehdään viestin alusta. Vältä komentoja, jotka alkavat toisillaan, kuten /deploy ja /deploy-prod: ei ole määrätty, kumpi laukeaa. Bottien viestit ja edelleenlähetetyt viestit eivät koskaan laukaise liipaisinta.

Mitä saat

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

KenttäTyyppiMikä se on
server_guidstringYhteisö.
channel_guidstringKanava, jolle viesti lähetettiin.
trigger_matchstringKomento, joka täsmäsi, esimerkiksi /weather.
message.contentstringKoko viesti, komento mukaan lukien.
message.member_guidstringJäsen, joka lähetti viestin, tässä yhteisössä.
message.user_guidstringSaman henkilön tili, sama kaikissa yhteisöissä.
message.group_guidsarrayJäsenen roolit.
message.cmsnumberLähetysaika millisekunteina.
message.is_action_buttonbooleantrue, kun liipaisimen laukaisi painike eikä kirjoitettu komento.
message.action_payloadobjectPainikkeen payload painalluksissa.
callback_urlstringPäivitä tai poista vastauksesi myöhemmin, 30 minuutin ajan.
stream_urlstringReaaliaikainen virta vastaukseesi tulevista vastauksista, reaktioista ja painikkeiden painalluksista, 10 minuutin ajan.
Kun salaisuus on asetettu, pyynnössä on X-Mssgs-Signature: sha256=<hex>: pyynnön raa'an bodyn HMAC-SHA256 salaisuudellasi. Laske se itse ja vertaa ennen kuin luotat pyyntöön.

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äTyyppiMikä se on
message_containerobjectKortti. Jokainen viestikorttien kenttä toimii tässä, myös tilapilleri, merkki, diff-luvut ja kokoontaitettu päättely.
title, description, color, ...stringLyhennys: ylätason korttikentät kääritään korttiin puolestasi.
actionsarrayPainikkeet kortin alla. Katso painikkeet.
visible_to_member_guidsarrayVain nämä jäsenet näkevät vastauksen. Katso yksityiset vastaukset.
Kortin otsakkeessa näkyy yhteisösi nimi, ja alatunniste kertoo, kuka komentoa käytti: "maya triggered /weather command". Avatar on jäsenen.
Vastaa aina kortilla: komentovastauksen kortissa ei näytetä content-riviä, joten laita tärkeä sisältö itse korttiin.

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 } })
});
Jos palvelusi ei vastaa ajoissa tai vastaa virheellä, komentoa käyttänyt jäsen näkee punaisen "Failed"-kortin. Muut eivät näe sitä.

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

RajaArvo
Vastausaika5 sekuntia
Vastauksen koko4 MB
Komentoja jäsentä kohden5 / 5 sekuntia
Vastauksen päivittäminen jälkikäteen30 minuuttia, callback_url-osoitteen kautta
Vastauksen reaaliaikainen virta10 minuuttia, stream_url-osoitteen kautta

Jatka rakentamista