Preskoči na glavno vsebino
Razvijalci Gumbi

Dodaj gumbe

Dodaj gumbe pod katero koli kartico. Gumb odpre povezavo, spremeni kartico za vse v trenutku, ko se ga kdo dotakne, ali tvoji storitvi sporoči, da je bil pritisnjen.

Kaj lahko narediš

  • Odpri povezavoPošlji ljudi na stran, nadzorno ploščo ali pull request.
  • Spremeni kartico z dotikomUredi jo, odstrani, dodaj reakcijo ali odgovor, kar ob pritisku, brez lastnega strežnika.
  • Zaznaj vsak pritiskTvoja storitev v živo izve, kdo je pritisnil kaj.
  • Zaženi ukazGumb lahko sproži enega od ukazov s poševnico v skupnosti, skupaj s podatki.

V aplikaciji

Nekdo pozvoni: prikaže se kartica

Dotik gumba Odpri vrata: kartica se spremeni za vse

Za samo spremembo ne potrebuješ strežnika: koraki so shranjeni skupaj s sporočilom. Krmilnik tvojih vrat zazna pritisk in odpre vrata.

Hiter začetek

  1. Dodaj seznam actions

    Gumbi gredo v actions, poleg kartice, v objavi prek webhooka, v odgovoru na ukaz ali v posodobitvi.

    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" }
      ]
    }
    deploys
    System
    Message from Deploybot

    Namestim v2.1 v produkcijo?

    Zahtevala je maya.
  2. Izberi, kaj naredi pritisk

    Povezava, sprememba kartice ali klic tvoje storitve. Tri vrste so opisane spodaj.

Tri vrste gumbov

Kaj naredi pritisk, določa type.

TipKaj naredi pritiskPride do tebe
url:{url}Odpre povezavo.Ne
webhook_actionIzvede korake, ki si jih shranil z njim, za vse v kanalu.Da, na stream_url sporočila
trigger:{guid}Sproži enega od triggerjev skupnosti s payload gumba.Da, kot nova zahteva na URL tega triggerja

Spremeni kartico z dotikom

Gumb webhook_action nosi seznam korakov v triggers. Ob pritisku se po vrsti izvedejo na strežniku mssgs, rezultat pa vidijo vsi v kanalu.

KorakKaj naredi, za vsePolja
update_messageZamenja kartico in njene gumbe. Pošlji "actions": [], da gumbe odstraniš.message_container, actions, content
remove_messageIzbriše sporočilo.Brez
add_reactionDoda reakcijo v imenu člana, ki je pritisnil.emoji
add_replyObjavi odgovor v imenu člana, ki je pritisnil.content
json
{
  "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:" }
      ]
    }
  ]
}
Koraki se berejo iz shranjenega sporočila, nikoli iz članove aplikacije, zato lahko pritisk naredi le to, kar si tja zapisal ti.
Koraki se izvedejo po vrsti in vsak se poskusi: če kateri spodleti, se preostali vseeno izvedejo.

Zaznaj pritisk

Sporočilo z gumbi se iz webhooka vrne s stream_url. Imej ga odprtega in vsak pritisk prispe kot dogodek tipa action, z ID-jem gumba, shranjenim gumbom in njegovim payload ter s podatkom, kdo ga je pritisnil:

sse
data: {"type": "action", "message_id": "...", "action_id": "open_gate", "action": {"id": "open_gate", "payload": {"door": "front"}, ...}, "member_guid": "member-guid", "member": {...}, "ts": 1790000000000}

Opravi pravo delo, na primer odpri vrata, nato prek callback_url nastavi končno stanje kartice. Kako delujeta tok in callback, piše na strani posodobitve v živo.

Zaženi ukaz z gumbom

Gumb trigger:{guid} sproži enega od triggerjev tvoje skupnosti, kot da bi nekdo vtipkal ukaz, in mu preda payload gumba. Trigger prejme:

json
{
  "actions": [
    {
      "type": "trigger:5f2c9a1e-trigger-guid",
      "text": "Check status",
      "color": "blue",
      "payload": { "order_id": "12345" }
    }
  ]
}
json
{
  "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=..."
}
Kar trigger odgovori, se objavi kot nova kartica. Zahteva ne pove, na katerem sporočilu je bil gumb: kar potrebuješ, daj v payload.

Polja

PoljeTipKaj naredi
typestringurl:{url}, webhook_action ali trigger:{guid}. Obvezno.
textstringNapis na gumbu. Obvezno; deluje tudi label.
colorstringBarva gumba, glej spodaj.
idstringZa webhook_action: kateri gumb je bil pritisnjen. Edinstven znotraj sporočila.
payloadobjectTvoji podatki, ki jih dobiš nazaj ob pritisku.
triggersarrayZa webhook_action: koraki, ki naj se izvedejo.
disabledbooleanGumb je prikazan sivo, pritiski pa so zavrnjeni.

Barve

green, blue in purple narišejo poln, primaren gumb. red, orange in yellow narišejo sekundarnega: uporabi jih za „Zavrni“, „Prekliči“ in druge previdne izbire.

Napake

Ko objaviš sporočilo z gumbi, jih mssgs najprej preveri:

KodaPomen
INVALID_ACTIONS_FORMATactions ni seznam objektov.
INVALID_ACTION_MISSING_FIELDSGumb nima type ali text.
DUPLICATE_ACTION_IDDva gumba imata isti id.
INVALID_TRIGGERS_FORMATtriggers ni seznam korakov.
INVALID_TRIGGER_MISSING_ACTIONKorak nima action.
INVALID_TRIGGER_ACTION_NOT_ALLOWEDKorak, ki ni eden od štirih zgoraj.

Ko nekdo pritisne

KodaPomen
MESSAGE_NOT_FOUNDSporočilo je bilo medtem izbrisano.
ACTION_NOT_FOUNDNa sporočilu ni gumba s tem ID-jem.
ACTION_DISABLEDGumb je onemogočen.
TRIGGER_NOT_FOUND, TRIGGER_NOT_ACTIVETrigger, na katerega kaže gumb, ne obstaja več ali je izklopljen.
TRIGGER_NOT_ALLOWEDČlan nima vloge, ki sme uporabljati ta trigger.

Prihajaš iz stare dokumentacije?

Gumbi tipa button s koraki ws:send, local:update_message in local:remove_message, pogoji previous:success in expire_in_seconds za zunanje pošiljatelje ne delujejo več. Uporabi webhook_action s koraki zgoraj: dosežejo vse, ne le osebe, ki je pritisnila.

Gradi naprej