---
title: "Kartice poruka: što poruka mssgs bota može prikazati"
description: "Oblikuj poruke botova u mssgs: naslovi, markdown, polja, slike, oznake statusa sa statistikom diffa, loader, razmišljanje i boje. Uz graditelj kartica uživo."
canonical: https://docs.mss.gs/hr/bots
language: hr
---

# Oblikuj kartice poruka

Sve što bot objavi, bilo iz webhooka, kao odgovor na naredbu ili kao ažuriranje nakon pritiska gumba, kartica je. Dobra kartica na prvi pogled kaže što se dogodilo: obojeni rub, naslov, status, a ispod detalji.

## Što možeš napraviti

- **Prikaži status** Obojena oznaka poput Open, Merged ili Passing, s dodanim i uklonjenim recima.

- **Navedi detalje** Retci s nazivom i vrijednošću koje članovi kopiraju jednim dodirom.

- **Piši u markdownu** Podebljano, inline kôd, blokovi koda, citati i potvrdni okviri.

- **Pokaži da radiš** Spinner dok tvoj bot razmišlja, a zatim njegovo razmišljanje iza preklopnika.

U aplikaciji

#### Otvoren pull request #212

Brže pretraživanje na popisu kanala

#### Build #1847 je prošao

#### api.acme.com ne radi

Četiri kartice onako kako ih vide članovi. Svaka je nekoliko redaka JSON-a.

- [Građa](#anatomy)

- [Sva polja](#fields)

- [Status i statistika diffa](#status)

- [Loader i razmišljanje](#ai)

- [Sustavne poruke](#system)

- [Boje](#colors)

- [Složi svoju](#try)

## Građa kartice

Dijelovi kartice, odozgo prema dolje. Izostavi ono što ti ne treba: kartica samo s naslovom sasvim je u redu.

#### Otvoren pull request #212

Brže pretraživanje na popisu kanala

- **Zaglavlje** „Message from“ i ime: ime webhooka ili, kod odgovora na naredbu, ime tvoje zajednice. Odgovor može dodati badge , primjerice repozitorij.

- **Naslov i status** title , koji postaje poveznica kad postaviš title_url , s oznakom status pored.

- **Podnaslov** Drugi podebljani redak, sub_title .

- **Opis** Tijelo, u markdownu.

- **Polja** Retci s nazivom i vrijednošću, s gumbom za kopiranje.

- **Podnožje** Vrijeme te dodani i uklonjeni retci, ako ih pošalješ.

```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
  }
}
```

## Sva polja

Ova polja idu u message_container . Kartici treba opis ili loader. Polja označena s „Odgovori na naredbe“ izostavljaju se kad objavljuješ preko webhooka.

| Polje | Tip | Što radi |
| --- | --- | --- |
| type | string | embed_message (zadano) ili system_message . |
| badge | string | Mala značka iza imena u zaglavlju, primjerice acme/web . Odgovori na naredbe |
| avatar_url | string | Slika preko ikone kartice. |
| color | string | Boja ruba. Pogledaj boje u nastavku. |
| title | string | Podebljani prvi redak. |
| title_url | string | Pretvara naslov u poveznicu. |
| sub_title | string | Drugi podebljani redak ispod naslova. |
| description | string | Tijelo, u markdownu. |
| fields | array | [{ "field": "…", "value": "…" }] : retci s nazivom i vrijednošću. |
| image_url , image_base64 | string | Slika na kartici. |
| images | array | [{ "image_url": "…" }] : galerija od nekoliko slika. |
| status | object ili string | Obojena oznaka pored naslova. Pogledaj u nastavku. Odgovori na naredbe |
| additions , deletions , files_changed | number | Statistika diffa u podnožju. Odgovori na naredbe |
| loader , loader_text , loader_sub_text | boolean, string | Spinner umjesto tijela. |
| thinking | string | Razmišljanje iza preklopnika **Show thinking**. Odgovori na naredbe |

## Status i statistika diffa

Oznaka statusa ispriča priču prije nego što itko pročita tekst. Stoji pored naslova ili, kad naslova nema, u podnožju; statistika diffa prikazuje se pored vremena. Oboje radi u odgovorima na naredbe i koristi ih ugrađena integracija s GitHubom. Webhook ih izostavlja.

#### Spojen pull request #212

#### Build na main nije uspio

#### maya: push na main

```json
{
  "message_container": {
    "color": "red",
    "title": "Build failed on main",
    "status": { "label": "Failing", "color": "red" },
    "description": "`search.test.js`: 2 of 212 tests failed."
  }
}
```

| Polje | Tip | Što radi |
| --- | --- | --- |
| status | object ili string | Sam string je oznaka: "status": "Open" . |
| status.label | string | Tekst oznake. Bez njega oznake nema. |
| status.color | string | green , purple , red , orange , yellow , blue ili gray . |
| status.icon | string | Neobavezna ikona s popisa u nastavku. |
| additions | number | Dodani retci, prikazani kao zeleno +86 . |
| deletions | number | Uklonjeni retci, prikazani kao crveno -12 . |
| files_changed | number | Promijenjene datoteke, prikazane kao 3 files . |

### Ikone

| Vrijednost | Ikona | Tipična upotreba |
| --- | --- | --- |
| pull_request | git-pull-request | Otvoren pull request |
| pull_request_closed | git-pull-request-closed | Zatvoren bez spajanja |
| merge , merged | git-merge | Spojeno |
| commit | git-commit | Pushani commit |
| issue | circle-dot | Otvoren issue |
| issue_closed | circle-check | Zatvoren issue |
| check | circle-check | Testovi su prošli, posao je uspio |

### Mapiranje koje odgovara GitHubu

Ugrađena integracija s GitHubom koristi ove vrijednosti; kopiraj ih za svoje alate.

| Događaj | Oznaka | Boja | Ikona |
| --- | --- | --- | --- |
| Otvoren pull request | Open | green | pull_request |
| Skica | Draft | gray | pull_request |
| Spojeno | Merged | purple | merged |
| Zatvoren bez spajanja | Closed | red | pull_request_closed |
| Otvoren issue | Open | green | issue |
| Zatvoren issue | Closed | purple | issue_closed |
| Pushan commit | Commit | gray | commit |
| Testovi su prošli | Passing | green | check |
| Testovi nisu prošli | Failing | red | nema |

## Loader i razmišljanje

Za sve što potraje, poput AI odgovora ili dugog posla, najprije objavi karticu sa spinnerom, a zatim je zamijeni rezultatom. Loader radi u webhookovima i odgovorima na naredbe. U odgovor na naredbu možeš staviti i razmišljanje modela, u thinking : članovi umjesto zida teksta vide preklopnik **Show thinking**.

Najprije: loader

maya: kad je standup?

Zatim: odgovor, s razmišljanjem sklopljenim

```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…"
  }
}
```

| Polje | Tip | Što radi |
| --- | --- | --- |
| loader | boolean | true prikazuje spinner umjesto tijela. |
| loader_text | string | Redak pored spinnera, primjerice „Razmišljam…“. |
| loader_sub_text | string | Manji redak ispod njega. |
| thinking | string | Sklopljeno razmišljanje ispod opisa, u markdownu. |

Da bi loader zamijenio odgovorom, ažuriraj poruku novom karticom bez loader . Kako, opisuje stranica [ažuriranja uživo](https://docs.mss.gs/hr/live-updates).

## Dugi opisi

Opis može imati do 50.000 bajtova. Nakon prvih 1.000 članovi vide početak i gumb **Show more** koji učitava ostatak, pa dugi izvještaj ne preplavljuje kanal.

## Sustavne poruke

Postavi "type": "system_message" za obavijest umjesto objave bota: termine održavanja, promjene pravila i sve što govori u ime same zajednice. Prima ista polja i gumbe.

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

## Boje

Boja ruba najbrži je signal na kartici. Za istu vrstu vijesti uvijek koristi istu boju.

| Boja | Za što |
| --- | --- |
| green | Uspjeh: prošlo, deployano, gotovo |
| red | Neuspjeh: palo, ne radi, odbijeno |
| orange | Upozorenje koje treba pogledati |
| yellow | Čeka se netko: odobrenja, pitanja |
| blue | Informacija, zadano |
| purple | Događaji u kodu ili nešto posebno |

## Složi svoj embed

Uredi polja ili JSON payload: oboje ostaje usklađeno. Pregled prikazuje poruku točno onako kako će izgledati u kanalu. Ovo je pravo tijelo webhooka; kopiraj ga kad sve izgleda kako treba.

## Nastavi graditi
