Preskočiť na hlavný obsah
Vývojári Tlačidlá

Pridaj tlačidlá

Pridaj tlačidlá pod ľubovoľnú kartu. Tlačidlo otvorí odkaz, zmení kartu pre všetkých hneď, ako naň niekto ťukne, alebo dá tvojej službe vedieť, že ho niekto stlačil.

Čo s tým môžeš robiť

  • Otvor odkazPošli ľudí na stránku, dashboard alebo pull request.
  • Zmeň kartu ťuknutímUprav ju, odstráň, zareaguj alebo odpovedz priamo po stlačení, bez vlastného servera.
  • Zachyť každé stlačenieTvoja služba sa naživo dozvie, kto čo stlačil.
  • Spusti príkazTlačidlo môže spustiť jeden z príkazov s lomkou tvojej komunity, aj s dátami.

V aplikácii

Niekto zazvoní: objaví sa karta

Ťuknutie na Otvoriť bránu: karta sa zmení pre všetkých

Samotná zmena nepotrebuje server: kroky sú uložené spolu so správou. Tvoj ovládač brány zachytí stlačenie a bránu otvorí.

Rýchly štart

  1. Pridaj zoznam actions

    Tlačidlá patria do actions, vedľa karty, v správe z webhooku, v odpovedi na príkaz alebo v aktualizácii.

    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

    Nasadiť v2.1 do produkcie?

    Žiada: maya.
  2. Vyber, čo stlačenie urobí

    Odkaz, zmenu karty alebo volanie tvojej služby. Tri druhy nájdeš nižšie.

Tri druhy tlačidiel

type určuje, čo stlačenie urobí.

TypČo urobí stlačenieDostaneš ho
url:{url}Otvorí odkaz.Nie
webhook_actionVykoná kroky uložené spolu s ním, pre všetkých v kanáli.Áno, cez stream_url správy
trigger:{guid}Spustí jeden z triggerov komunity s payload tlačidla.Áno, ako novú požiadavku na URL toho triggera

Zmena karty ťuknutím

Tlačidlo webhook_action nesie v triggers zoznam krokov. Po stlačení sa jeden po druhom vykonajú na serveri mssgs a výsledok uvidia všetci v kanáli.

KrokČo urobí, pre všetkýchPolia
update_messageNahradí kartu aj jej tlačidlá. Pošli "actions": [] a tlačidlá zmiznú.message_container, actions, content
remove_messageZmaže správu.Žiadne
add_reactionPridá reakciu v mene člena, ktorý tlačidlo stlačil.emoji
add_replyPošle odpoveď v mene člena, ktorý tlačidlo stlačil.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:" }
      ]
    }
  ]
}
Kroky sa čítajú z uloženej správy, nikdy z aplikácie člena, takže stlačenie môže urobiť iba to, čo tam vložíš.
Kroky sa vykonajú v poradí a skúsi sa každý z nich: ak jeden zlyhá, ostatné aj tak prebehnú.

Zachyť stlačenie

Správa s tlačidlami sa z webhooku vráti so stream_url. Nechaj stream otvorený a každé stlačenie príde ako udalosť typu action, s id tlačidla, uloženým tlačidlom a jeho payload a s informáciou, kto ho stlačil:

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

Urob skutočnú prácu, napríklad otvor bránu, a potom cez callback_url nastav konečný stav karty. Ako funguje stream a callback, sa dočítaš na stránke živé aktualizácie.

Spusti príkaz tlačidlom

Tlačidlo trigger:{guid} spustí jeden z triggerov tvojej komunity, akoby niekto napísal príkaz, a odovzdá mu payload tlačidla. Trigger dostane:

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=..."
}
Čo trigger odpovie, sa uverejní ako nová karta. Z požiadavky sa nedá zistiť, na ktorej správe tlačidlo bolo: čo potrebuješ, daj do payload.

Polia

PoleTypČo robí
typestringurl:{url}, webhook_action alebo trigger:{guid}. Povinné.
textstringPopis na tlačidle. Povinné; funguje aj label.
colorstringFarba tlačidla, pozri nižšie.
idstringPre webhook_action: ktoré tlačidlo bolo stlačené. Jedinečné v rámci správy.
payloadobjectTvoje dáta, ktoré dostaneš späť pri stlačení.
triggersarrayPre webhook_action: kroky, ktoré sa majú vykonať.
disabledbooleanZobrazí tlačidlo sivé a stlačenia sa odmietnu.

Farby

green, blue a purple vykreslia plné, hlavné tlačidlo. red, orange a yellow vykreslia vedľajšie: použi ich pre „Zamietnuť“, „Zrušiť“ a iné voľby, pri ktorých treba byť opatrný.

Chyby

Keď pošleš správu s tlačidlami, mssgs ich najprv skontroluje:

KódVýznam
INVALID_ACTIONS_FORMATactions nie je zoznam objektov.
INVALID_ACTION_MISSING_FIELDSTlačidlo nemá type alebo text.
DUPLICATE_ACTION_IDDve tlačidlá majú rovnaké id.
INVALID_TRIGGERS_FORMATtriggers nie je zoznam krokov.
INVALID_TRIGGER_MISSING_ACTIONKrok nemá action.
INVALID_TRIGGER_ACTION_NOT_ALLOWEDIný krok ako štyri uvedené vyššie.

Keď niekto stlačí tlačidlo

KódVýznam
MESSAGE_NOT_FOUNDSpráva bola medzitým zmazaná.
ACTION_NOT_FOUNDNa správe nie je tlačidlo s týmto id.
ACTION_DISABLEDTlačidlo je vypnuté.
TRIGGER_NOT_FOUND, TRIGGER_NOT_ACTIVETrigger, na ktorý tlačidlo odkazuje, už neexistuje alebo je vypnutý.
TRIGGER_NOT_ALLOWEDČlen nemá rolu, ktorá smie tento trigger používať.

Prichádzaš zo starej dokumentácie?

Tlačidlá typu button s krokmi ws:send, local:update_message a local:remove_message, podmienky previous:success a expire_in_seconds už pre externých odosielateľov nefungujú. Použi webhook_action s krokmi vyššie: dostanú sa ku všetkým, nielen k tomu, kto tlačidlo stlačil.

Tvor ďalej