Siirry pääsisältöön
Kehittäjät Painikkeet

Lisää painikkeita

Lisää painikkeita minkä tahansa kortin alle. Painike avaa linkin, muuttaa korttia kaikille heti, kun joku napauttaa sitä, tai kertoo palvelullesi, että sitä painettiin.

Mitä voit tehdä

  • Avaa linkkiOhjaa ihmiset sivulle, hallintapaneeliin tai pull requestiin.
  • Muuta korttia napautuksellaMuokkaa sitä, poista se, reagoi tai vastaa suoraan painalluksesta ilman omaa palvelinta.
  • Kuule jokainen painallusPalvelusi saa livenä tietää, kuka painoi mitäkin.
  • Aja komentoPainike voi laukaista jonkin yhteisön kauttaviivakomennoista, datan kera.

Sovelluksessa

Joku soittaa ovikelloa: kortti ilmestyy

Napautus Avaa portti -painikkeeseen: kortti muuttuu kaikille

Itse muutokseen ei tarvita palvelinta: vaiheet on tallennettu viestin mukana. Porttiohjaimesi kuulee painalluksen ja avaa portin.

Pika-aloitus

  1. Lisää actions-lista

    Painikkeet kuuluvat kenttään actions kortin rinnalle, webhook-julkaisussa, komennon vastauksessa tai päivityksessä.

    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
    Viesti lähettäjältä Deploybot

    Viedäänkö v2.1 tuotantoon?

    Pyytäjä: maya.
  2. Valitse, mitä painallus tekee

    Linkki, muutos korttiin tai kutsu palveluusi. Kolme tyyppiä on kuvattu alla.

Kolme painiketyyppiä

type ratkaisee, mitä painallus tekee.

TyyppiMitä painallus tekeeTavoittaa sinut
url:{url}Avaa linkin.Ei
webhook_actionSuorittaa sen mukana tallentamasi vaiheet kaikille kanavalla.Kyllä, viestin stream_url-virrassa
trigger:{guid}Laukaisee jonkin yhteisön liipaisimista painikkeen payload-datan kanssa.Kyllä, uutena pyyntönä kyseisen liipaisimen URL:iin

Muuta korttia napautuksella

webhook_action-painikkeessa on vaihelista kentässä triggers. Painettaessa vaiheet suoritetaan mssgs:n palvelimella järjestyksessä, ja kaikki kanavalla näkevät tuloksen.

VaiheMitä se tekee kaikilleKentät
update_messageKorvaa kortin ja sen painikkeet. Lähetä "actions": [], niin painikkeet poistuvat.message_container, actions, content
remove_messagePoistaa viestin.Ei kenttiä
add_reactionLisää reaktion painajan nimissä.emoji
add_replyJulkaisee vastauksen painajan nimissä.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:" }
      ]
    }
  ]
}
Vaiheet luetaan tallennetusta viestistä, ei koskaan jäsenen sovelluksesta, joten painallus voi tehdä vain sen, minkä sinä laitoit sinne.
Vaiheet suoritetaan järjestyksessä, ja jokaista yritetään: jos yksi epäonnistuu, loput suoritetaan silti.

Kuule painallus

Painikkeellinen viesti palaa webhookista stream_url-osoitteen kanssa. Pidä virta auki, niin jokainen painallus saapuu action-tyyppisenä tapahtumana, jossa ovat painikkeen id, tallennettu painike ja sen payload sekä painaja:

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

Tee varsinainen työ, kuten portin avaaminen, ja aseta sitten kortin lopullinen tila callback_url-osoitteen kautta. Virran ja callbackin toiminta on kuvattu sivulla live-päivitykset.

Aja komento painikkeesta

trigger:{guid}-painike laukaisee jonkin yhteisösi liipaisimista ikään kuin joku olisi kirjoittanut komennon, ja välittää painikkeen payload-datan. Liipaisin saa:

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=..."
}
Liipaisimen vastaus julkaistaan uutena korttina. Pyynnöstä ei selviä, missä viestissä painike oli: laita tarvitsemasi tiedot kenttään payload.

Kentät

KenttäTyyppiMitä se tekee
typestringurl:{url}, webhook_action tai trigger:{guid}. Pakollinen.
textstringPainikkeen teksti. Pakollinen; myös label käy.
colorstringPainikkeen väri, katso alta.
idstringwebhook_action-painikkeelle: mitä painiketta painettiin. Yksilöllinen viestin sisällä.
payloadobjectOmaa dataasi, joka palautetaan painettaessa.
triggersarraywebhook_action-painikkeelle: suoritettavat vaiheet.
disabledbooleanNäyttää painikkeen harmaana, ja painallukset hylätään.

Värit

green, blue ja purple piirtävät täytetyn ensisijaisen painikkeen. red, orange ja yellow piirtävät toissijaisen: käytä niitä valinnoissa kuten "Hylkää" ja "Peruuta" sekä muissa harkintaa vaativissa.

Virheet

Kun julkaiset painikkeellisen viestin, mssgs tarkistaa painikkeet ensin:

KoodiMerkitys
INVALID_ACTIONS_FORMATactions ei ole lista olioita.
INVALID_ACTION_MISSING_FIELDSPainikkeelta puuttuu type tai text.
DUPLICATE_ACTION_IDKahdella painikkeella on sama id.
INVALID_TRIGGERS_FORMATtriggers ei ole vaihelista.
INVALID_TRIGGER_MISSING_ACTIONVaiheelta puuttuu action.
INVALID_TRIGGER_ACTION_NOT_ALLOWEDJokin muu vaihe kuin yllä olevat neljä.

Kun joku painaa

KoodiMerkitys
MESSAGE_NOT_FOUNDViesti poistettiin sillä välin.
ACTION_NOT_FOUNDViestissä ei ole painiketta tällä id:llä.
ACTION_DISABLEDPainike on poistettu käytöstä.
TRIGGER_NOT_FOUND, TRIGGER_NOT_ACTIVELiipaisin, johon painike osoittaa, on poistettu tai kytketty pois päältä.
TRIGGER_NOT_ALLOWEDJäsenellä ei ole roolia, joka saa käyttää kyseistä liipaisinta.

Tuletko vanhoista ohjeista?

button-tyyppiset painikkeet ws:send-vaiheineen, local:update_message ja local:remove_message, previous:success-ehdot ja expire_in_seconds eivät enää toimi ulkopuolisille lähettäjille. Käytä webhook_action-painiketta yllä kuvatuilla vaiheilla: ne tavoittavat kaikki, eivät vain painajaa.

Jatka rakentamista