Preskoči na glavni sadržaj
Programeri Gumbi

Dodaj gumbe

Stavi gumbe ispod bilo koje kartice. Gumb otvara poveznicu, mijenja karticu za sve čim ga netko dodirne ili javlja tvojoj usluzi da je pritisnut.

Što možeš napraviti

  • Otvori poveznicuPošalji ljude na stranicu, nadzornu ploču ili pull request.
  • Promijeni karticu jednim dodiromUredi je, ukloni, reagiraj ili odgovori, izravno iz pritiska, bez vlastitog servera.
  • Primaj svaki pritisakTvoja usluga uživo saznaje tko je što pritisnuo.
  • Pokreni naredbuGumb može pokrenuti jednu od slash naredbi zajednice, s podacima.

U aplikaciji

Netko zvoni: pojavi se kartica

Dodir na Otvori kapiju: kartica se mijenja za sve

Za samu promjenu ne treba ti server: koraci su spremljeni uz poruku. Tvoj upravljač kapije prima pritisak i otvara kapiju.

Brzi početak

  1. Dodaj popis actions

    Gumbi idu u actions, pored kartice: u objavi webhooka, u odgovoru na naredbu ili u ažuriranju.

    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

    Deployati v2.1 u produkciju?

    Zahtjev od: maya.
  2. Odaberi što pritisak radi

    Poveznica, promjena kartice ili poziv tvojoj usluzi. Tri vrste opisane su u nastavku.

Tri vrste gumba

O tome što pritisak radi odlučuje type.

TipŠto pritisak radiStiže do tebe
url:{url}Otvara poveznicu.Ne
webhook_actionIzvršava korake spremljene uz njega, za sve u kanalu.Da, na stream_url poruke
trigger:{guid}Pokreće jedan od triggera zajednice s payload gumba.Da, kao novi zahtjev na URL tog triggera

Promijeni karticu jednim dodirom

Gumb webhook_action nosi popis koraka u triggers. Na pritisak se oni izvršavaju redom na mssgs serveru, a rezultat vide svi u kanalu.

KorakŠto radi, za svePolja
update_messageZamjenjuje karticu i njezine gumbe. Pošalji "actions": [] da bi uklonio gumbe.message_container, actions, content
remove_messageBriše poruku.Nema
add_reactionDodaje reakciju u ime člana koji je pritisnuo.emoji
add_replyObjavljuje odgovor u ime člana koji je pritisnuo.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:" }
      ]
    }
  ]
}
Koraci se čitaju iz spremljene poruke, nikad iz aplikacije člana, pa pritisak može napraviti samo ono što si ondje stavio.
Koraci se izvršavaju redom i svaki se pokušava izvršiti: ako jedan ne uspije, ostali se ipak izvrše.

Primaj pritiske

Poruka s gumbima vraća se iz webhooka sa stream_url. Drži ga otvorenim i svaki pritisak stići će kao događaj tipa action, s id-jem gumba, spremljenim gumbom i njegovim payload te podatkom tko ga je pritisnuo:

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

Odradi pravi posao, primjerice otvori kapiju, a zatim postavi konačno stanje kartice preko callback_url. Kako rade stream i callback, opisuje stranica ažuriranja uživo.

Pokreni naredbu gumbom

Gumb trigger:{guid} pokreće jedan od triggera tvoje zajednice, kao da je netko upisao naredbu, i predaje payload gumba. Trigger prima:

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=..."
}
Ono što trigger odgovori objavljuje se kao nova kartica. Zahtjev ne kaže na kojoj je poruci bio gumb: ono što ti treba stavi u payload.

Polja

PoljeTipŠto radi
typestringurl:{url}, webhook_action ili trigger:{guid}. Obavezno.
textstringNatpis na gumbu. Obavezno; radi i label.
colorstringBoja gumba, pogledaj u nastavku.
idstringZa webhook_action: koji je gumb pritisnut. Jedinstven unutar poruke.
payloadobjectTvoji podaci, vraćeni pri pritisku.
triggersarrayZa webhook_action: koraci koje treba izvršiti.
disabledbooleanPrikazuje gumb zasivljen, a pritisci se odbijaju.

Boje

green, blue i purple crtaju ispunjeni, primarni gumb. red, orange i yellow crtaju sekundarni: koristi ih za „Odbij“, „Odustani“ i druge oprezne izbore.

Pogreške

Kad objaviš poruku s gumbima, mssgs ih najprije provjeri:

KôdZnačenje
INVALID_ACTIONS_FORMATactions nije popis objekata.
INVALID_ACTION_MISSING_FIELDSGumb nema type ili nema text.
DUPLICATE_ACTION_IDDva gumba imaju isti id.
INVALID_TRIGGERS_FORMATtriggers nije popis koraka.
INVALID_TRIGGER_MISSING_ACTIONKorak nema action.
INVALID_TRIGGER_ACTION_NOT_ALLOWEDKorak koji nije jedan od četiri gore navedena.

Kad netko pritisne

KôdZnačenje
MESSAGE_NOT_FOUNDPoruka je u međuvremenu izbrisana.
ACTION_NOT_FOUNDNa poruci nema gumba s tim id-jem.
ACTION_DISABLEDGumb je onemogućen.
TRIGGER_NOT_FOUND, TRIGGER_NOT_ACTIVETrigger na koji gumb pokazuje više ne postoji ili je isključen.
TRIGGER_NOT_ALLOWEDČlan nema ulogu koja smije koristiti taj trigger.

Dolaziš iz stare dokumentacije?

Gumbi tipa button s koracima ws:send, local:update_message i local:remove_message, uvjeti previous:success i expire_in_seconds više ne rade za vanjske pošiljatelje. Koristi webhook_action s gore navedenim koracima: oni stižu do svih, a ne samo do osobe koja je pritisnula.

Nastavi graditi