Pridėk mygtukus
Pridėk mygtukus po bet kuria kortele. Mygtukas atidaro nuorodą, pakeičia kortelę visiems tą akimirką, kai kas nors jį paspaudžia, arba praneša tavo paslaugai, kad buvo paspaustas.
Ką gali padaryti
- Atidaryk nuorodąNukreipk žmones į puslapį, skydelį ar pull request.
- Pakeisk kortelę vienu paspaudimuRedaguok ją, pašalink, sureaguok ar atsakyk tiesiai iš paspaudimo, be savo serverio.
- Gauk kiekvieną paspaudimąTavo paslauga gyvai sužino, kas ką paspaudė.
- Paleisk komandąMygtukas gali paleisti vieną iš bendruomenės komandų su pasviruoju brūkšniu, kartu su duomenimis.
Programėlėje
Kažkas skambina: atsiranda kortelė
Paspaudus „Atidaryti vartus“, kortelė pasikeičia visiems
Pačiam pakeitimui serverio nereikia: žingsniai saugomi kartu su žinute. Tavo vartų valdiklis gauna paspaudimą ir atidaro vartus.
Greita pradžia
Pridėk actions sąrašą
Mygtukai dedami į
actions, šalia kortelės: webhook įraše, atsakyme į komandą arba atnaujinime.json{ "message_container": { "color": "yellow", "title": "Deploy v2.1 to production?", "description": "Requested by maya." }, "actions": [ { "type": "url:https://ci.example.com/deploys/218", "text": "View changes", "color": "blue" } ] }deploysPasirink, ką daro paspaudimas
Nuoroda, kortelės pakeitimas arba kreipimasis į tavo paslaugą. Trys rūšys aprašytos toliau.
Trys mygtukų rūšys
Ką daro paspaudimas, lemia type.
| Tipas | Ką daro paspaudimas | Ar pasiekia tave |
|---|---|---|
url:{url} | Atidaro nuorodą. | Ne |
webhook_action | Vykdo su juo išsaugotus žingsnius, visiems kanale. | Taip, per žinutės stream_url |
trigger:{guid} | Paleidžia vieną iš bendruomenės trigerių su mygtuko payload. | Taip, kaip nauja užklausa į to trigerio URL |
Kortelės keitimas vienu paspaudimu
webhook_action mygtukas turi žingsnių sąrašą lauke triggers. Paspaudus jie paeiliui vykdomi mssgs serveryje, o rezultatą mato visi kanale.
| Žingsnis | Ką daro, visiems | Laukai |
|---|---|---|
update_message | Pakeičia kortelę ir jos mygtukus. Siųsk "actions": [], kad pašalintum mygtukus. | message_container, actions, content |
remove_message | Ištrina žinutę. | Nėra |
add_reaction | Prideda reakciją paspaudusio nario vardu. | emoji |
add_reply | Paskelbia atsakymą paspaudusio nario vardu. | content |
{
"message_container": { "color": "yellow", "title": "Front door", "description": "Someone rang the bell." },
"actions": [
{
"type": "webhook_action",
"id": "open_gate",
"text": "Open gate",
"color": "green",
"payload": { "door": "front" },
"triggers": [
{
"action": "update_message",
"message_container": { "color": "blue", "title": "Front door", "description": "Opening…" },
"actions": []
},
{ "action": "add_reaction", "emoji": ":white_check_mark:" }
]
}
]
}Paspaudimų gavimas
Žinutė su mygtukais grįžta iš webhook su stream_url. Laikyk jį atidarytą, ir kiekvienas paspaudimas ateis kaip action tipo įvykis su mygtuko id, išsaugotu mygtuku ir jo payload bei informacija, kas jį paspaudė:
data: {"type": "action", "message_id": "...", "action_id": "open_gate", "action": {"id": "open_gate", "payload": {"door": "front"}, ...}, "member_guid": "member-guid", "member": {...}, "ts": 1790000000000}Atlik tikrąjį darbą, pavyzdžiui, atidaryk vartus, tada per callback_url nustatyk galutinę kortelės būseną. Kaip veikia srautas ir callback, rasi puslapyje atnaujinimai realiuoju laiku.
Komandos paleidimas mygtuku
trigger:{guid} mygtukas paleidžia vieną iš tavo bendruomenės trigerių, lyg kas nors būtų įvedęs komandą, ir perduoda mygtuko payload. Trigeris gauna:
{
"actions": [
{
"type": "trigger:5f2c9a1e-trigger-guid",
"text": "Check status",
"color": "blue",
"payload": { "order_id": "12345" }
}
]
}{
"trigger_match": "/status",
"message": {
"content": "[Action Triggered]",
"member_guid": "member-guid",
"is_action_button": true,
"action_payload": { "order_id": "12345" }
},
"callback_url": "https://mss.gs/api/v1/trigger-callback/...",
"stream_url": "https://mss.gs/api/v1/instant/...?token=..."
}payload.Laukai
| Laukas | Tipas | Ką daro |
|---|---|---|
type | string | url:{url}, webhook_action arba trigger:{guid}. Privalomas. |
text | string | Užrašas ant mygtuko. Privalomas; tinka ir label. |
color | string | Mygtuko spalva, žr. toliau. |
id | string | webhook_action atveju: kuris mygtukas paspaustas. Unikalus žinutėje. |
payload | object | Tavo duomenys, grąžinami paspaudus. |
triggers | array | webhook_action atveju: vykdomi žingsniai. |
disabled | boolean | Rodo mygtuką papilkintą, o paspaudimai atmetami. |
Spalvos
green, blue ir purple piešia vientisą, pagrindinį mygtuką. red, orange ir yellow piešia antrinį: naudok juos „Atmesti“, „Atšaukti“ ir kitiems atsargiems pasirinkimams.
Klaidos
Kai skelbi žinutę su mygtukais, mssgs pirmiausia juos patikrina:
| Kodas | Reikšmė |
|---|---|
INVALID_ACTIONS_FORMAT | actions nėra objektų sąrašas. |
INVALID_ACTION_MISSING_FIELDS | Mygtukas neturi type arba text. |
DUPLICATE_ACTION_ID | Du mygtukai turi tą patį id. |
INVALID_TRIGGERS_FORMAT | triggers nėra žingsnių sąrašas. |
INVALID_TRIGGER_MISSING_ACTION | Žingsnis neturi action. |
INVALID_TRIGGER_ACTION_NOT_ALLOWED | Žingsnis, kuris nėra vienas iš keturių aukščiau. |
Kai kas nors paspaudžia
| Kodas | Reikšmė |
|---|---|
MESSAGE_NOT_FOUND | Žinutė per tą laiką buvo ištrinta. |
ACTION_NOT_FOUND | Žinutėje nėra mygtuko su tokiu id. |
ACTION_DISABLED | Mygtukas išjungtas. |
TRIGGER_NOT_FOUND, TRIGGER_NOT_ACTIVE | Trigeris, į kurį rodo mygtukas, nebeegzistuoja arba išjungtas. |
TRIGGER_NOT_ALLOWED | Narys neturi rolės, kuriai leidžiama naudoti tą trigerį. |
Ateini iš senosios dokumentacijos?
button tipo mygtukai su ws:send žingsniais, local:update_message ir local:remove_message, previous:success sąlygos ir expire_in_seconds išoriniams siuntėjams nebeveikia. Naudok webhook_action su aukščiau aprašytais žingsniais: jie pasiekia visus, ne tik paspaudusį žmogų.