Πρόσθεσε κουμπιά
Βάλε κουμπιά κάτω από οποιαδήποτε κάρτα. Ένα κουμπί ανοίγει έναν σύνδεσμο, αλλάζει την κάρτα για όλους τη στιγμή που κάποιος το πατά ή ειδοποιεί την υπηρεσία σου ότι πατήθηκε.
Τι μπορείς να κάνεις
- Άνοιξε έναν σύνδεσμοΣτείλε τους άλλους σε μια σελίδα, ένα dashboard ή ένα pull request.
- Άλλαξε την κάρτα με ένα πάτημαΕπεξεργάσου την, αφαίρεσέ την, αντίδρασε ή απάντησε, κατευθείαν από το πάτημα, χωρίς δικό σου server.
- Άκου κάθε πάτημαΗ υπηρεσία σου μαθαίνει ζωντανά ποιος πάτησε τι.
- Τρέξε μια εντολήΈνα κουμπί μπορεί να ενεργοποιήσει μία από τις εντολές slash της κοινότητας, με δεδομένα.
Στην εφαρμογή
Κάποιος χτυπά το κουδούνι: εμφανίζεται η κάρτα
Ένα πάτημα στο «Άνοιγμα πύλης»: η κάρτα αλλάζει για όλους
Για την ίδια την αλλαγή δεν χρειάζεται server: τα βήματα αποθηκεύονται μαζί με το μήνυμα. Ο ελεγκτής της πύλης σου ακούει το πάτημα και ανοίγει την πύλη.
Γρήγορη εκκίνηση
Πρόσθεσε μια λίστα actions
Τα κουμπιά μπαίνουν στο
actions, δίπλα στην κάρτα, σε μια δημοσίευση webhook, σε μια απάντηση σε εντολή ή σε μια ενημέρωση.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Διάλεξε τι κάνει ένα πάτημα
Έναν σύνδεσμο, μια αλλαγή στην κάρτα ή μια κλήση στην υπηρεσία σου. Τα τρία είδη θα τα βρεις παρακάτω.
Τρία είδη κουμπιών
Το type αποφασίζει τι κάνει ένα πάτημα.
| Τύπος | Τι κάνει ένα πάτημα | Φτάνει σε σένα |
|---|---|---|
url:{url} | Ανοίγει τον σύνδεσμο. | Όχι |
webhook_action | Εκτελεί τα βήματα που αποθήκευσες μαζί του, για όλους στο κανάλι. | Ναι, στο stream_url του μηνύματος |
trigger:{guid} | Ενεργοποιεί ένα από τα triggers της κοινότητας με το payload του κουμπιού. | Ναι, ως νέο αίτημα στο URL εκείνου του trigger |
Άλλαξε την κάρτα με ένα πάτημα
Ένα κουμπί webhook_action έχει μια λίστα βημάτων στο triggers. Με το πάτημα εκτελούνται στον server του mssgs, με τη σειρά, και όλοι στο κανάλι βλέπουν το αποτέλεσμα.
| Βήμα | Τι κάνει, για όλους | Πεδία |
|---|---|---|
update_message | Αντικαθιστά την κάρτα και τα κουμπιά της. Στείλε "actions": [] για να αφαιρέσεις τα κουμπιά. | message_container, actions, content |
remove_message | Διαγράφει το μήνυμα. | Κανένα |
add_reaction | Προσθέτει μια αντίδραση, εκ μέρους του μέλους που πάτησε. | emoji |
add_reply | Δημοσιεύει μια απάντηση, εκ μέρους του μέλους που πάτησε. | 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:" }
]
}
]
}Άκου το πάτημα
Ένα μήνυμα με κουμπιά επιστρέφει από το webhook με ένα stream_url. Κράτα το ανοιχτό και κάθε πάτημα φτάνει ως συμβάν τύπου action, με το id του κουμπιού, το αποθηκευμένο κουμπί και το payload του, και με το ποιος το πάτησε:
data: {"type": "action", "message_id": "...", "action_id": "open_gate", "action": {"id": "open_gate", "payload": {"door": "front"}, ...}, "member_guid": "member-guid", "member": {...}, "ts": 1790000000000}Κάνε την πραγματική δουλειά, όπως να ανοίξεις την πύλη, και μετά όρισε την τελική κατάσταση της κάρτας μέσω του callback_url. Πώς λειτουργούν η ροή και το callback θα το βρεις στις ζωντανές ενημερώσεις.
Τρέξε μια εντολή από ένα κουμπί
Ένα κουμπί trigger:{guid} ενεργοποιεί ένα από τα triggers της κοινότητάς σου, σαν να είχε πληκτρολογήσει κάποιος την εντολή, και παραδίδει το payload του κουμπιού. Το trigger λαμβάνει:
{
"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.Πεδία
| Πεδίο | Τύπος | Τι κάνει |
|---|---|---|
type | string | url:{url}, webhook_action ή trigger:{guid}. Υποχρεωτικό. |
text | string | Η ετικέτα πάνω στο κουμπί. Υποχρεωτικό. Λειτουργεί και το label. |
color | string | Το χρώμα του κουμπιού, δες παρακάτω. |
id | string | Για webhook_action: ποιο κουμπί πατήθηκε. Μοναδικό μέσα στο μήνυμα. |
payload | object | Τα δεδομένα σου, που επιστρέφονται με κάθε πάτημα. |
triggers | array | Για webhook_action: τα βήματα που θα εκτελεστούν. |
disabled | boolean | Δείχνει το κουμπί γκριζαρισμένο και τα πατήματα απορρίπτονται. |
Χρώματα
Τα green, blue και purple σχεδιάζουν ένα γεμάτο, κύριο κουμπί. Τα red, orange και yellow σχεδιάζουν ένα δευτερεύον: χρησιμοποίησέ τα για «Απόρριψη», «Ακύρωση» και άλλες επιλογές που θέλουν προσοχή.
Σφάλματα
Όταν δημοσιεύεις ένα μήνυμα με κουμπιά, το mssgs τα ελέγχει πρώτα:
| Κωδικός | Σημασία |
|---|---|
INVALID_ACTIONS_FORMAT | Το actions δεν είναι λίστα αντικειμένων. |
INVALID_ACTION_MISSING_FIELDS | Ένα κουμπί δεν έχει type ή text. |
DUPLICATE_ACTION_ID | Δύο κουμπιά έχουν το ίδιο id. |
INVALID_TRIGGERS_FORMAT | Το triggers δεν είναι λίστα βημάτων. |
INVALID_TRIGGER_MISSING_ACTION | Ένα βήμα δεν έχει action. |
INVALID_TRIGGER_ACTION_NOT_ALLOWED | Ένα βήμα διαφορετικό από τα τέσσερα παραπάνω. |
Όταν κάποιος πατά
| Κωδικός | Σημασία |
|---|---|
MESSAGE_NOT_FOUND | Το μήνυμα διαγράφηκε στο μεταξύ. |
ACTION_NOT_FOUND | Δεν υπάρχει κουμπί με αυτό το id στο μήνυμα. |
ACTION_DISABLED | Το κουμπί είναι απενεργοποιημένο. |
TRIGGER_NOT_FOUND, TRIGGER_NOT_ACTIVE | Το trigger στο οποίο δείχνει ένα κουμπί δεν υπάρχει πια ή είναι απενεργοποιημένο. |
TRIGGER_NOT_ALLOWED | Το μέλος δεν έχει ρόλο που επιτρέπεται να χρησιμοποιεί αυτό το trigger. |
Έρχεσαι από την παλιά τεκμηρίωση;
button με βήματα ws:send, τα local:update_message και local:remove_message, οι συνθήκες previous:success και το expire_in_seconds δεν λειτουργούν πια για εξωτερικούς αποστολείς. Χρησιμοποίησε webhook_action με τα παραπάνω βήματα: φτάνουν σε όλους, όχι μόνο στο άτομο που πάτησε.