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

Suunnittele viestikortteja

Kaikki, mitä botti julkaisee, tuli se sitten webhookista, komentovastauksesta tai painikkeen päivityksestä, on kortti. Hyvä kortti kertoo yhdellä silmäyksellä, mitä tapahtui: värillinen reuna, otsikko, tila ja yksityiskohdat sen alla.

Mitä voit tehdä

  • Näytä tilaVärillinen pilleri, kuten Avoin, Yhdistetty tai Läpi, sekä lisätyt ja poistetut rivit.
  • Listaa yksityiskohdatNimike- ja arvorivejä, jotka jäsenet voivat kopioida yhdellä napautuksella.
  • Kirjoita markdownillaLihavointi, inline-koodi, koodilohkot, lainaukset ja valintaruudut.
  • Näytä, että työskenteletLatausilmaisin sillä aikaa, kun bottisi miettii, ja jälkeenpäin sen päättely valitsimen takana.

Sovelluksessa

Neljä korttia sellaisina kuin jäsenet ne näkevät. Jokainen on muutama rivi JSONia.

Kortin rakenne

Kortin osat ylhäältä alas. Jätä pois se, mitä et tarvitse: pelkkä otsikkokin riittää kortiksi.

  1. Otsake"Viesti lähettäjältä" ja nimi: webhookin nimi, tai komentovastauksessa yhteisösi nimi. Vastaukseen voi lisätä badge-merkin, esimerkiksi repositorion.
  2. Otsikko ja tilatitle, joka on linkki, kun asetat title_url-kentän, ja sen vieressä status-pilleri.
  3. AlaotsikkoToinen lihavoitu rivi, sub_title.
  4. KuvausRunko, markdownina.
  5. KentätNimike- ja arvorivejä kopiointipainikkeella.
  6. AlatunnisteAika sekä lisätyt ja poistetut rivit, jos lähetät ne.
json
{
  "message_container": {
    "type": "embed_message",
    "badge": "acme/web",
    "color": "purple",
    "title": "Pull request #212 opened",
    "title_url": "https://github.com/acme/web/pull/212",
    "status": { "label": "Open", "color": "green", "icon": "pull_request" },
    "sub_title": "Faster search in the channel list",
    "description": "Search now runs **per keystroke** with a 120 ms debounce.",
    "fields": [
      { "field": "Author", "value": "maya" },
      { "field": "Reviewers", "value": "dani, sam" }
    ],
    "additions": 86,
    "deletions": 12,
    "files_changed": 3
  }
}

Kaikki kentät

Nämä kuuluvat message_container-olioon. Kortti tarvitsee kuvauksen tai latausilmaisimen. Merkinnällä "Komentovastaukset" varustetut kentät pudotetaan pois, kun julkaiset webhookin kautta.

KenttäTyyppiMitä se tekee
typestringembed_message (oletus) tai system_message.
badgestringPieni siru nimen perässä otsakkeessa, esimerkiksi acme/web. Komentovastaukset
avatar_urlstringKuva kortin kuvakkeen päällä.
colorstringReunan väri. Katso värit alta.
titlestringLihavoitu ensimmäinen rivi.
title_urlstringTekee otsikosta linkin.
sub_titlestringToinen lihavoitu rivi otsikon alla.
descriptionstringRunko, markdownina.
fieldsarray[{ "field": "…", "value": "…" }]: nimike- ja arvorivit.
image_url, image_base64stringKuva kortissa.
imagesarray[{ "image_url": "…" }]: usean kuvan galleria.
statusobject tai stringVärillinen pilleri otsikon vieressä. Katso alta. Komentovastaukset
additions, deletions, files_changednumberDiff-luvut alatunnisteessa. Komentovastaukset
loader, loader_text, loader_sub_textboolean, stringLatausilmaisin rungon tilalla.
thinkingstringPäättely Näytä ajattelu -valitsimen takana. Komentovastaukset
Kuvaus ja thinking ymmärtävät markdownia: **bold**, _italic_, ~~strike~~, `inline code`, aidatut koodilohkot, > lainaukset, - [x]-valintaruudut, @maininnat ja :emoji:.

Tila ja diff-luvut

Tilapilleri kertoo tarinan ennen kuin kukaan lukee tekstiä. Se on otsikon vieressä, tai alatunnisteessa, jos otsikkoa ei ole; diff-luvut näkyvät ajan vieressä. Molemmat toimivat komentovastauksissa, ja sisäänrakennettu GitHub-integraatio käyttää niitä. Webhook pudottaa ne pois.

json
{
  "message_container": {
    "color": "red",
    "title": "Build failed on main",
    "status": { "label": "Failing", "color": "red" },
    "description": "`search.test.js`: 2 of 212 tests failed."
  }
}
KenttäTyyppiMitä se tekee
statusobject tai stringPelkkä merkkijono on nimike: "status": "Open".
status.labelstringPillerin teksti. Ilman sitä pilleriä ei ole.
status.colorstringgreen, purple, red, orange, yellow, blue tai gray.
status.iconstringValinnainen kuvake alla olevasta listasta.
additionsnumberLisätyt rivit, näkyvät vihreänä +86.
deletionsnumberPoistetut rivit, näkyvät punaisena -12.
files_changednumberMuutetut tiedostot, näkyvät muodossa 3 files.

Kuvakkeet

ArvoKuvakeTyypillinen käyttö
pull_requestgit-pull-requestPull request avattu
pull_request_closedgit-pull-request-closedSuljettu yhdistämättä
merge, mergedgit-mergeYhdistetty
commitgit-commitPushattu commit
issuecircle-dotIssue avattu
issue_closedcircle-checkIssue suljettu
checkcircle-checkTestit läpi, työ onnistui

GitHubille sopiva vastaavuus

Sisäänrakennettu GitHub-integraatio käyttää näitä; kopioi ne omiin työkaluihisi.

TapahtumaNimikeVäriKuvake
Pull request avattuOpengreenpull_request
LuonnosDraftgraypull_request
YhdistettyMergedpurplemerged
Suljettu yhdistämättäClosedredpull_request_closed
Issue avattuOpengreenissue
Issue suljettuClosedpurpleissue_closed
Commit pushattuCommitgraycommit
Testit läpiPassinggreencheck
Testit epäonnistuivatFailingredei kuvaketta

Lataus ja ajattelu

Kun jokin vie hetken, kuten tekoälyn vastaus tai pitkä työ, julkaise ensin kortti latausilmaisimella ja korvaa se sitten tuloksella. Latausilmaisin toimii webhookeista ja komentovastauksista. Komentovastauksessa voit lisäksi laittaa mallin päättelyn kenttään thinking: jäsenet näkevät Näytä ajattelu -valitsimen tekstimuurin sijaan.

assistant
System
Viesti lähettäjältä Assistant
Ajattelee…Luetaan 50 viimeisintä viestiä

Ensin: latausilmaisin

assistant
System
Viesti lähettäjältä Assistant

maya: milloin standup on?

Standup on klo 09.30 kanavalla #daily.
Tarkistin kiinnitetyt viestit ja #daily-kanavan toistuvan tapahtuman.

Sitten: vastaus, päättely piilossa

json
{
  "message_container": {
    "type": "embed_message",
    "color": "blue",
    "loader": true,
    "loader_text": "Thinking…",
    "loader_sub_text": "Reading the last 50 messages"
  }
}
json
{
  "message_container": {
    "type": "embed_message",
    "color": "blue",
    "sub_title": "maya: when is the standup?",
    "description": "Standup is at **09:30**, in #daily.",
    "thinking": "Checked the pinned messages and the recurring event in #daily…"
  }
}
KenttäTyyppiMitä se tekee
loaderbooleantrue näyttää latausilmaisimen rungon tilalla.
loader_textstringRivi latausilmaisimen vieressä, esimerkiksi "Ajattelee…".
loader_sub_textstringPienempi rivi sen alla.
thinkingstringKokoontaitettu päättely kuvauksen alla, markdownina.

Vaihda latausilmaisin vastaukseen päivittämällä viesti uudella kortilla, josta loader puuttuu. Ohjeet ovat sivulla live-päivitykset.

Pitkät kuvaukset

Kuvaus voi olla enintään 50 000 tavua. Ensimmäisten 1 000 tavun jälkeen jäsenet näkevät alun ja Näytä lisää -painikkeen, joka lataa loput, joten pitkä raportti ei tulvi kanavaa täyteen.

Järjestelmäviestit

Aseta "type": "system_message", kun kyse on ilmoituksesta eikä bottiviestistä: huoltokatkot, sääntömuutokset ja kaikki muu, missä yhteisö itse on äänessä. Se ottaa vastaan samat kentät ja painikkeet.

json
{
  "message_container": {
    "type": "system_message",
    "color": "orange",
    "title": "Maintenance tonight",
    "description": "The build servers are down from 22:00 to 23:00."
  }
}

Värit

Reunan väri on kortin nopein signaali. Käytä samaa väriä samanlaisille uutisille, joka kerta.

VäriKäyttötarkoitus
greenOnnistuminen: läpi, julkaistu, valmis
redEpäonnistuminen: epäonnistui, alhaalla, hylätty
orangeVaroitus, joka kannattaa tarkistaa
yellowOdottaa jotakuta: hyväksynnät, kysymykset
blueTiedoksi, oletus
purpleKoodin tapahtumat tai jotain erityistä

Rakenna oma embed

Muokkaa kenttiä tai JSON-payloadia. Ne pysyvät synkronoituina. Näet viestin täsmälleen sellaisena kuin se näkyy kanavalla. Tämä on oikea webhook-body; kopioi se, kun se näyttää oikealta.

Mallit
Painikkeet
Esikatselu
Webhook-body

Jatka rakentamista