Dodaj przyciski
Umieść przyciski pod dowolną kartą. Przycisk otwiera link, zmienia kartę dla wszystkich w chwili, gdy ktoś go dotknie, albo informuje twoją usługę, że został naciśnięty.
Co możesz z tym zrobić
- Otwórz linkKieruj ludzi na stronę, dashboard albo pull request.
- Zmień kartę jednym dotknięciemEdytuj ją, usuń, zareaguj albo odpowiedz, prosto z naciśnięcia, bez własnego serwera.
- Odbieraj każde naciśnięcieTwoja usługa na żywo dowiaduje się, kto co nacisnął.
- Uruchom komendęPrzycisk może uruchomić jedną z komend z ukośnikiem społeczności, z danymi.
W aplikacji
Ktoś dzwoni: pojawia się karta
Dotknięcie Otwórz bramę: karta zmienia się dla wszystkich
Sama zmiana nie wymaga serwera: kroki są zapisane razem z wiadomością. Twój sterownik bramy odbiera naciśnięcie i otwiera bramę.
Szybki start
Dodaj listę actions
Przyciski trafiają do
actions, obok karty: w poście z webhooka, w odpowiedzi na komendę albo w aktualizacji.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" } ] }deploysWybierz, co robi naciśnięcie
Link, zmiana karty albo wywołanie twojej usługi. Trzy rodzaje opisujemy niżej.
Trzy rodzaje przycisków
O tym, co robi naciśnięcie, decyduje type.
| Typ | Co robi naciśnięcie | Czy do ciebie dociera |
|---|---|---|
url:{url} | Otwiera link. | Nie |
webhook_action | Wykonuje zapisane z nim kroki, dla wszystkich na kanale. | Tak, na stream_url wiadomości |
trigger:{guid} | Uruchamia jeden z triggerów społeczności z payload przycisku. | Tak, jako nowe żądanie na URL tego triggera |
Zmiana karty jednym dotknięciem
Przycisk webhook_action niesie listę kroków w triggers. Po naciśnięciu wykonują się one po kolei na serwerze mssgs, a wynik widzą wszyscy na kanale.
| Krok | Co robi, dla wszystkich | Pola |
|---|---|---|
update_message | Zastępuje kartę i jej przyciski. Wyślij "actions": [], żeby usunąć przyciski. | message_container, actions, content |
remove_message | Usuwa wiadomość. | Brak |
add_reaction | Dodaje reakcję w imieniu osoby, która nacisnęła. | emoji |
add_reply | Publikuje odpowiedź w imieniu osoby, która nacisnęła. | content |
{
"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:" }
]
}
]
}Odbieranie naciśnięć
Wiadomość z przyciskami wraca z webhooka z stream_url. Trzymaj go otwartym, a każde naciśnięcie dotrze jako zdarzenie typu action, z id przycisku, zapisanym przyciskiem i jego payload oraz informacją, kto go nacisnął:
data: {"type": "action", "message_id": "...", "action_id": "open_gate", "action": {"id": "open_gate", "payload": {"door": "front"}, ...}, "member_guid": "member-guid", "member": {...}, "ts": 1790000000000}Wykonaj właściwą pracę, np. otwórz bramę, a potem ustaw końcowy stan karty przez callback_url. Jak działają strumień i callback, opisujemy w aktualizacjach na żywo.
Uruchamianie komendy przyciskiem
Przycisk trigger:{guid} uruchamia jeden z triggerów twojej społeczności, tak jakby ktoś wpisał komendę, i przekazuje payload przycisku. Trigger otrzymuje:
{
"actions": [
{
"type": "trigger:5f2c9a1e-trigger-guid",
"text": "Check status",
"color": "blue",
"payload": { "order_id": "12345" }
}
]
}{
"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=..."
}payload.Pola
| Pole | Typ | Co robi |
|---|---|---|
type | string | url:{url}, webhook_action albo trigger:{guid}. Wymagane. |
text | string | Etykieta na przycisku. Wymagane; działa też label. |
color | string | Kolor przycisku, zobacz niżej. |
id | string | Dla webhook_action: który przycisk naciśnięto. Unikalne w obrębie wiadomości. |
payload | object | Twoje dane, zwracane przy naciśnięciu. |
triggers | array | Dla webhook_action: kroki do wykonania. |
disabled | boolean | Pokazuje przycisk wyszarzony, a naciśnięcia są odrzucane. |
Kolory
green, blue i purple rysują pełny, główny przycisk. red, orange i yellow rysują drugorzędny: używaj ich dla „Odrzuć”, „Anuluj” i innych ostrożnych wyborów.
Błędy
Gdy publikujesz wiadomość z przyciskami, mssgs najpierw je sprawdza:
| Kod | Znaczenie |
|---|---|
INVALID_ACTIONS_FORMAT | actions nie jest listą obiektów. |
INVALID_ACTION_MISSING_FIELDS | Przycisk nie ma type albo text. |
DUPLICATE_ACTION_ID | Dwa przyciski mają to samo id. |
INVALID_TRIGGERS_FORMAT | triggers nie jest listą kroków. |
INVALID_TRIGGER_MISSING_ACTION | Krok nie ma action. |
INVALID_TRIGGER_ACTION_NOT_ALLOWED | Krok inny niż cztery powyższe. |
Gdy ktoś naciśnie
| Kod | Znaczenie |
|---|---|
MESSAGE_NOT_FOUND | Wiadomość została w międzyczasie usunięta. |
ACTION_NOT_FOUND | W wiadomości nie ma przycisku o tym id. |
ACTION_DISABLED | Przycisk jest wyłączony. |
TRIGGER_NOT_FOUND, TRIGGER_NOT_ACTIVE | Trigger, na który wskazuje przycisk, nie istnieje albo jest wyłączony. |
TRIGGER_NOT_ALLOWED | Członek nie ma roli, która może używać tego triggera. |
Przechodzisz ze starej dokumentacji?
button z krokami ws:send, local:update_message i local:remove_message, warunki previous:success oraz expire_in_seconds nie działają już dla zewnętrznych nadawców. Używaj webhook_action z krokami opisanymi wyżej: docierają do wszystkich, nie tylko do osoby, która nacisnęła.