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
Luo liipaisin
Avaa työpöytäsovelluksessa yhteisösi Hallitse palvelinta → Liipaisimet ja lisää liipaisin: komento, johon se reagoi, esimerkiksi
/weather, ja verkkopalvelusi URL.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=..." }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
Asetukset
Jokaisella liipaisimella on nämä asetukset kohdassa Hallitse palvelinta → Liipaisimet.
| Asetus | Mitä se tekee |
|---|---|
| Liipaisimen nimi | Nimi, joka näkyy komennon vieressä valitsimessa. |
| Tunnistettava sana | Teksti, jolla viestin on alettava, esimerkiksi /weather. Kauttaviiva on tavallinen, ei pakollinen. |
| URL-osoite | Minne mssgs lähettää viestin. |
| Webhookin salaisuus | Valinnainen. mssgs allekirjoittaa jokaisen pyynnön sillä, katso alta. |
| Aktiivinen | Kytke liipaisin pois päältä poistamatta sitä. |
| Julkaise tunnistettu viesti | Jääkö jäsenen oma /weather Amsterdam kanavalle vastauksesi yläpuolelle. |
| Näytä latausvastaus | Näytä latauskortti sillä aikaa, kun palvelusi työskentelee. |
| Sallitut käyttäjäryhmät | Vain näiden roolien jäsenet laukaisevat sen. Muille se on tavallinen viesti. |
/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ä | Tyyppi | Mikä se on |
|---|---|---|
server_guid | string | Yhteisö. |
channel_guid | string | Kanava, jolle viesti lähetettiin. |
trigger_match | string | Komento, joka täsmäsi, esimerkiksi /weather. |
message.content | string | Koko viesti, komento mukaan lukien. |
message.member_guid | string | Jäsen, joka lähetti viestin, tässä yhteisössä. |
message.user_guid | string | Saman henkilön tili, sama kaikissa yhteisöissä. |
message.group_guids | array | Jäsenen roolit. |
message.cms | number | Lähetysaika millisekunteina. |
message.is_action_button | boolean | true, kun liipaisimen laukaisi painike eikä kirjoitettu komento. |
message.action_payload | object | Painikkeen payload painalluksissa. |
callback_url | string | Päivitä tai poista vastauksesi myöhemmin, 30 minuutin ajan. |
stream_url | string | Reaaliaikainen virta vastaukseesi tulevista vastauksista, reaktioista ja painikkeiden painalluksista, 10 minuutin ajan. |
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ä | Tyyppi | Mikä se on |
|---|---|---|
message_container | object | Kortti. Jokainen viestikorttien kenttä toimii tässä, myös tilapilleri, merkki, diff-luvut ja kokoontaitettu päättely. |
title, description, color, ... | string | Lyhennys: ylätason korttikentät kääritään korttiin puolestasi. |
actions | array | Painikkeet kortin alla. Katso painikkeet. |
visible_to_member_guids | array | Vain nämä jäsenet näkevät vastauksen. Katso yksityiset vastaukset. |
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.
// 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 } })
});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.
{
"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.
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
| Raja | Arvo |
|---|---|
| Vastausaika | 5 sekuntia |
| Vastauksen koko | 4 MB |
| Komentoja jäsentä kohden | 5 / 5 sekuntia |
| Vastauksen päivittäminen jälkikäteen | 30 minuuttia, callback_url-osoitteen kautta |
| Vastauksen reaaliaikainen virta | 10 minuuttia, stream_url-osoitteen kautta |