Protokoloversigt#
PocketHook kommunikerer med din server ved hjælp af en simpel JSON-baseret protokol over HTTPS. Appen sender POST-forespørgsler og forventer JSON-svar.
Godkendelse#
PocketHook sender det konfigurerede godkendelsestoken som et Bearer-token:
Authorization: Bearer your-secret-token
Content-Type: application/json
Forespørgsel#
Standardformat#
[{
"sessionId": "550e8400-e29b-41d4-a716-446655440000",
"action": "sendMessage",
"chatInput": "user message"
}]
| Felt | Type | Beskrivelse |
|---|---|---|
sessionId | string (UUID v4) | Unik sessionsidentifikator |
action | string | Altid "sendMessage" |
chatInput | string | Brugerens besked (maks 10.000 tegn) |
OpenClaw-format#
Når OpenClaw-tilstand er aktiveret, bruger PocketHook OpenAI Chat Completions-formatet:
{
"model": "agent-id",
"messages": [
{ "role": "user", "content": "user message" }
]
}
Med headeren x-openclaw-agent-id sat til det konfigurerede agent-ID.
Svar#
Enkelt svar#
{
"msg": "Display message",
"shortcut": "ShortcutName",
"data": { "key": "value" },
"url": "https://example.com"
}
Multi-handling svar#
Returnér et array til sekventiel udførelse:
[
{ "msg": "Starting...", "shortcut": "FirstAction" },
{ "msg": "Processing...", "shortcut": "SecondAction", "data": { "input": "from-first" } },
{ "msg": "Done!", "url": "https://results.example.com" }
]
PocketHook udfører genveje i rækkefølge og venter på, at hver enkelt fuldføres, før den næste køres.
Svarfelter#
| Felt | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
msg | string | Ja | Tekst vist i chatten. Understøtter Markdown, HTML, billeder og knapsyntaks. |
shortcut | string | Nej | Navn på en iOS-genvej der skal udføres. |
data | object | array | Nej | JSON-data videregivet som input til genvejen. |
url | string | Nej | URL at tilknytte beskeden. |
OpenClaw-svar#
I OpenClaw-tilstand parser PocketHook inline-markører fra svarindholdet:
Here's your result! [SHORTCUT:ProcessData] [DATA:{"key":"value"}] [URL:https://example.com]
Indholdsvisning#
Feltet msg understøtter flere indholdstyper:
Almindelig tekst#
{ "msg": "Simple text message" }
Markdown#
{ "msg": "**Bold**, *italic*, `code`, and [links](https://example.com)" }
HTML#
Skal starte med <div for at blive registreret som HTML:
{ "msg": "<div><h2>Title</h2><p>Rich <strong>HTML</strong> content</p></div>" }
Billeder#
{ "msg": "https://example.com/image.png" }
Enhver URL der ender på .png, .jpg, .jpeg, .gif eller .webp vises som et billede.
Knapper#
Interaktive knapper vist under beskeden. Format: Button: Title | actionType: actionValue
Tre handlingstyper:
sendMessage: text— sender teksten som en ny besked til serverenopenURL: https://...— åbner URL’en i browserentriggerShortcut: ShortcutName— kører en iOS-genvej
{ "msg": "Which one do you prefer?\nButton: Option A | sendMessage: I choose option A\nButton: Option B | sendMessage: I choose option B" }
Blandede handlinger:
{ "msg": "Here are the results:\nButton: View details | openURL: https://example.com/item\nButton: Add to cart | triggerShortcut: addToCart" }
Knaplinjer er skjult fra den viste tekst — kun de interaktive knapper vises under beskeden.
Health Check#
PocketHook understøtter et valgfrit health check-endpoint:
- Metode: GET
- Forventet svar: Almindelig tekst
trueellerfalse - URL: Konfigureres separat i Indstillinger
Baggrundsafstemning#
Når aktiveret sender PocketHook periodisk en GET-forespørgsel til afstemnings-URL’en:
- Hvis svaret er
true, sender PocketHook den konfigurerede hentningsbesked til hovedserveren - Afstemningsintervaller: 5, 15, 30, 60 eller 120 minutter
- Kræver notifikationstilladelse for baggrundspåmindelser
Agent Server: Brug https://your-host/jobs som afstemnings-URL. Returnerer true, når der er fuldførte baggrundsopgaveresultater, der venter på levering.
SDK#
Brug npm-pakken pockethook-sdk til at bygge svar med TypeScript:
import { text, shortcut, responses, toResponse, parseRequest } from "pockethook-sdk";
// Parse og valider indgående forespørgsel
const { sessionId, chatInput } = parseRequest(requestBody);
// Byg svar
toResponse(text("Hello!"));
toResponse(shortcut("Running...", "MyShortcut", { key: "value" }));
toResponse(responses([
{ msg: "Step 1", shortcut: "First" },
{ msg: "Step 2", shortcut: "Second" }
]));
Se starter-serveren for et minimalt fungerende eksempel, eller agent-serveren for en komplet AI-agent med værktøjskald og baggrundsopgaver.