Μετάβαση στο κύριο περιεχόμενο
Προγραμματιστές Κουμπιά

Πρόσθεσε κουμπιά

Βάλε κουμπιά κάτω από οποιαδήποτε κάρτα. Ένα κουμπί ανοίγει έναν σύνδεσμο, αλλάζει την κάρτα για όλους τη στιγμή που κάποιος το πατά ή ειδοποιεί την υπηρεσία σου ότι πατήθηκε.

Τι μπορείς να κάνεις

  • Άνοιξε έναν σύνδεσμοΣτείλε τους άλλους σε μια σελίδα, ένα dashboard ή ένα pull request.
  • Άλλαξε την κάρτα με ένα πάτημαΕπεξεργάσου την, αφαίρεσέ την, αντίδρασε ή απάντησε, κατευθείαν από το πάτημα, χωρίς δικό σου server.
  • Άκου κάθε πάτημαΗ υπηρεσία σου μαθαίνει ζωντανά ποιος πάτησε τι.
  • Τρέξε μια εντολήΈνα κουμπί μπορεί να ενεργοποιήσει μία από τις εντολές slash της κοινότητας, με δεδομένα.

Στην εφαρμογή

Κάποιος χτυπά το κουδούνι: εμφανίζεται η κάρτα

Ένα πάτημα στο «Άνοιγμα πύλης»: η κάρτα αλλάζει για όλους

Για την ίδια την αλλαγή δεν χρειάζεται server: τα βήματα αποθηκεύονται μαζί με το μήνυμα. Ο ελεγκτής της πύλης σου ακούει το πάτημα και ανοίγει την πύλη.

Γρήγορη εκκίνηση

  1. Πρόσθεσε μια λίστα 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
    System
    Message from Deploybot

    Deploy της v2.1 στην παραγωγή;

    Αίτημα από: maya.
  2. Διάλεξε τι κάνει ένα πάτημα

    Έναν σύνδεσμο, μια αλλαγή στην κάρτα ή μια κλήση στην υπηρεσία σου. Τα τρία είδη θα τα βρεις παρακάτω.

Τρία είδη κουμπιών

Το 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
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:" }
      ]
    }
  ]
}
Τα βήματα διαβάζονται από το αποθηκευμένο μήνυμα, ποτέ από την εφαρμογή του μέλους, οπότε ένα πάτημα μπορεί να κάνει μόνο ό,τι έβαλες εκεί.
Τα βήματα εκτελούνται με τη σειρά και επιχειρείται το καθένα: αν ένα αποτύχει, τα υπόλοιπα εκτελούνται κανονικά.

Άκου το πάτημα

Ένα μήνυμα με κουμπιά επιστρέφει από το webhook με ένα stream_url. Κράτα το ανοιχτό και κάθε πάτημα φτάνει ως συμβάν τύπου action, με το id του κουμπιού, το αποθηκευμένο κουμπί και το payload του, και με το ποιος το πάτησε:

sse
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 λαμβάνει:

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=..."
}
Ό,τι απαντήσει το trigger δημοσιεύεται ως νέα κάρτα. Το αίτημα δεν λέει σε ποιο μήνυμα ήταν το κουμπί: βάλε ό,τι χρειάζεσαι στο payload.

Πεδία

ΠεδίοΤύποςΤι κάνει
typestringurl:{url}, webhook_action ή trigger:{guid}. Υποχρεωτικό.
textstringΗ ετικέτα πάνω στο κουμπί. Υποχρεωτικό. Λειτουργεί και το label.
colorstringΤο χρώμα του κουμπιού, δες παρακάτω.
idstringΓια webhook_action: ποιο κουμπί πατήθηκε. Μοναδικό μέσα στο μήνυμα.
payloadobjectΤα δεδομένα σου, που επιστρέφονται με κάθε πάτημα.
triggersarrayΓια webhook_action: τα βήματα που θα εκτελεστούν.
disabledbooleanΔείχνει το κουμπί γκριζαρισμένο και τα πατήματα απορρίπτονται.

Χρώματα

Τα 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 με τα παραπάνω βήματα: φτάνουν σε όλους, όχι μόνο στο άτομο που πάτησε.

Συνέχισε να φτιάχνεις