Επισκόπηση Πρωτοκόλλου#
Το PocketHook επικοινωνεί με τον διακομιστή σας χρησιμοποιώντας ένα απλό πρωτόκολλο βασισμένο σε JSON μέσω HTTPS. Η εφαρμογή στέλνει αιτήματα POST και αναμένει απαντήσεις JSON.
Αυθεντικοποίηση#
Το PocketHook στέλνει το ρυθμισμένο token αυθεντικοποίησης ως Bearer token:
Authorization: Bearer your-secret-token
Content-Type: application/json
Αίτημα#
Τυπική Μορφή#
[{
"sessionId": "550e8400-e29b-41d4-a716-446655440000",
"action": "sendMessage",
"chatInput": "user message"
}]
| Πεδίο | Τύπος | Περιγραφή |
|---|---|---|
sessionId | string (UUID v4) | Μοναδικό αναγνωριστικό συνεδρίας |
action | string | Πάντα "sendMessage" |
chatInput | string | Μήνυμα χρήστη (μέγ. 10.000 χαρακτήρες) |
Μορφή OpenClaw#
Όταν η λειτουργία OpenClaw είναι ενεργοποιημένη, το PocketHook χρησιμοποιεί τη μορφή OpenAI Chat Completions:
{
"model": "agent-id",
"messages": [
{ "role": "user", "content": "user message" }
]
}
Με την κεφαλίδα x-openclaw-agent-id ρυθμισμένη στο αναγνωριστικό του agent.
Απάντηση#
Μονή Απάντηση#
{
"msg": "Display message",
"shortcut": "ShortcutName",
"data": { "key": "value" },
"url": "https://example.com"
}
Απάντηση Πολλαπλών Ενεργειών#
Επιστρέψτε ένα array για διαδοχική εκτέλεση:
[
{ "msg": "Starting...", "shortcut": "FirstAction" },
{ "msg": "Processing...", "shortcut": "SecondAction", "data": { "input": "from-first" } },
{ "msg": "Done!", "url": "https://results.example.com" }
]
Το PocketHook εκτελεί τις συντομεύσεις με σειρά, περιμένοντας κάθε μία να ολοκληρωθεί πριν εκτελέσει την επόμενη.
Πεδία Απάντησης#
| Πεδίο | Τύπος | Απαιτείται | Περιγραφή |
|---|---|---|---|
msg | string | Ναι | Κείμενο που εμφανίζεται στη συνομιλία. Υποστηρίζει Markdown, HTML, εικόνες και σύνταξη κουμπιών. |
shortcut | string | Όχι | Όνομα συντόμευσης iOS προς εκτέλεση. |
data | object | array | Όχι | Δεδομένα JSON που μεταβιβάζονται ως είσοδος στη συντόμευση. |
url | string | Όχι | URL για σύνδεση με το μήνυμα. |
Απάντηση OpenClaw#
Σε λειτουργία OpenClaw, το PocketHook αναλύει ενσωματωμένους δείκτες από το περιεχόμενο της απάντησης:
Here's your result! [SHORTCUT:ProcessData] [DATA:{"key":"value"}] [URL:https://example.com]
Απόδοση Περιεχομένου#
Το πεδίο msg υποστηρίζει πολλαπλούς τύπους περιεχομένου:
Απλό Κείμενο#
{ "msg": "Simple text message" }
Markdown#
{ "msg": "**Bold**, *italic*, `code`, and [links](https://example.com)" }
HTML#
Πρέπει να ξεκινά με <div για να ανιχνευθεί ως HTML:
{ "msg": "<div><h2>Title</h2><p>Rich <strong>HTML</strong> content</p></div>" }
Εικόνες#
{ "msg": "https://example.com/image.png" }
Οποιοδήποτε URL που τελειώνει σε .png, .jpg, .jpeg, .gif ή .webp αποδίδεται ως εικόνα.
Κουμπιά#
Διαδραστικά κουμπιά που εμφανίζονται κάτω από το μήνυμα. Μορφή: Button: Title | actionType: actionValue
Τρεις τύποι ενεργειών:
sendMessage: text— στέλνει το κείμενο ως νέο μήνυμα στον διακομιστήopenURL: https://...— ανοίγει το URL στον browsertriggerShortcut: ShortcutName— εκτελεί μια συντόμευση iOS
{ "msg": "Which one do you prefer?\nButton: Option A | sendMessage: I choose option A\nButton: Option B | sendMessage: I choose option B" }
Μικτές ενέργειες:
{ "msg": "Here are the results:\nButton: View details | openURL: https://example.com/item\nButton: Add to cart | triggerShortcut: addToCart" }
Οι γραμμές κουμπιών κρύβονται από το εμφανιζόμενο κείμενο — μόνο τα διαδραστικά κουμπιά εμφανίζονται κάτω από το μήνυμα.
Health Check#
Το PocketHook υποστηρίζει ένα προαιρετικό endpoint ελέγχου υγείας:
- Μέθοδος: GET
- Αναμενόμενη απάντηση: Απλό κείμενο
trueήfalse - URL: Ρυθμίζεται ξεχωριστά στις Ρυθμίσεις
Ψηφοφορία στο Παρασκήνιο#
Όταν είναι ενεργοποιημένο, το PocketHook στέλνει περιοδικά αίτημα GET στο URL ψηφοφορίας:
- Εάν η απάντηση είναι
true, το PocketHook στέλνει το ρυθμισμένο μήνυμα ανάκτησης στον κύριο διακομιστή - Διαστήματα ψηφοφορίας: 5, 15, 30, 60 ή 120 λεπτά
- Απαιτεί άδεια ειδοποιήσεων για ειδοποιήσεις παρασκηνίου
Agent Server: Χρησιμοποιήστε https://your-host/jobs ως URL ψηφοφορίας. Επιστρέφει true όταν υπάρχουν ολοκληρωμένα αποτελέσματα εργασιών παρασκηνίου σε αναμονή παράδοσης.
SDK#
Χρησιμοποιήστε το npm πακέτο pockethook-sdk για να δημιουργήσετε απαντήσεις με TypeScript:
import { text, shortcut, responses, toResponse, parseRequest } from "pockethook-sdk";
// Ανάλυση και επικύρωση εισερχόμενου αιτήματος
const { sessionId, chatInput } = parseRequest(requestBody);
// Δημιουργία απαντήσεων
toResponse(text("Hello!"));
toResponse(shortcut("Running...", "MyShortcut", { key: "value" }));
toResponse(responses([
{ msg: "Step 1", shortcut: "First" },
{ msg: "Step 2", shortcut: "Second" }
]));
Δείτε τον starter server για ένα ελάχιστο λειτουργικό παράδειγμα, ή τον agent server για έναν πλήρη AI agent με κλήσεις εργαλείων και εργασίες παρασκηνίου.