Protokolloversikt#
PocketHook kommuniserer med serveren din ved hjelp av en enkel JSON-basert protokoll over HTTPS. Appen sender POST-forespørsler og forventer JSON-svar.
Autentisering#
PocketHook sender det konfigurerte autentiseringstokenet som et Bearer-token:
Authorization: Bearer your-secret-token
Content-Type: application/json
Forespørsel#
Standardformat#
[{
"sessionId": "550e8400-e29b-41d4-a716-446655440000",
"action": "sendMessage",
"chatInput": "user message"
}]
| Felt | Type | Beskrivelse |
|---|---|---|
sessionId | string (UUID v4) | Unik sesjonsidentifikator |
action | string | Alltid "sendMessage" |
chatInput | string | Brukerens melding (maks 10 000 tegn) |
OpenClaw-format#
Når OpenClaw-modus er aktivert, bruker PocketHook OpenAI Chat Completions-formatet:
{
"model": "agent-id",
"messages": [
{ "role": "user", "content": "user message" }
]
}
Med headeren x-openclaw-agent-id satt til den konfigurerte agent-ID-en.
Svar#
Enkelt svar#
{
"msg": "Display message",
"shortcut": "ShortcutName",
"data": { "key": "value" },
"url": "https://example.com"
}
Flerhandlingssvar#
Returner en matrise for sekvensiell utførelse:
[
{ "msg": "Starting...", "shortcut": "FirstAction" },
{ "msg": "Processing...", "shortcut": "SecondAction", "data": { "input": "from-first" } },
{ "msg": "Done!", "url": "https://results.example.com" }
]
PocketHook utfører snarveier i rekkefølge og venter på at hver enkelt fullføres før neste kjøres.
Svarfelter#
| Felt | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
msg | string | Ja | Tekst vist i chatten. Støtter Markdown, HTML, bilder og knappsyntaks. |
shortcut | string | Nei | Navn på en iOS-snarvei som skal utføres. |
data | object | array | Nei | JSON-data sendt som inndata til snarveien. |
url | string | Nei | URL å knytte til meldingen. |
OpenClaw-svar#
I OpenClaw-modus analyserer PocketHook innebygde markører fra svarinnholdet:
Here's your result! [SHORTCUT:ProcessData] [DATA:{"key":"value"}] [URL:https://example.com]
Innholdsvisning#
msg-feltet støtter flere innholdstyper:
Ren tekst#
{ "msg": "Simple text message" }
Markdown#
{ "msg": "**Bold**, *italic*, `code`, and [links](https://example.com)" }
HTML#
Må starte med <div for å bli oppdaget som HTML:
{ "msg": "<div><h2>Title</h2><p>Rich <strong>HTML</strong> content</p></div>" }
Bilder#
{ "msg": "https://example.com/image.png" }
Enhver URL som ender med .png, .jpg, .jpeg, .gif eller .webp vises som et bilde.
Knapper#
Interaktive knapper vist under meldingen. Format: Button: Title | actionType: actionValue
Tre handlingstyper:
sendMessage: text— sender teksten som en ny melding til serverenopenURL: https://...— åpner URL-en i nettleserentriggerShortcut: ShortcutName— kjører en iOS-snarvei
{ "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" }
Knappelinjer er skjult fra den viste teksten — kun de interaktive knappene vises under meldingen.
Health Check#
PocketHook støtter et valgfritt health check-endepunkt:
- Metode: GET
- Forventet svar: Ren tekst
trueellerfalse - URL: Konfigureres separat i Innstillinger
Bakgrunnsavspørring#
Når aktivert, sender PocketHook periodisk en GET-forespørsel til avspørrings-URL-en:
- Hvis svaret er
true, sender PocketHook den konfigurerte hentemeldingen til hovedserveren - Avspørringsintervaller: 5, 15, 30, 60 eller 120 minutter
- Krever varslingstillatelse for bakgrunnsvarsler
Agent Server: Bruk https://your-host/jobs som avspørrings-URL. Returnerer true når det finnes fullførte bakgrunnsoppgaveresultater som venter på levering.
SDK#
Bruk npm-pakken pockethook-sdk for å bygge svar med TypeScript:
import { text, shortcut, responses, toResponse, parseRequest } from "pockethook-sdk";
// Parse og valider innkommende forespørsel
const { sessionId, chatInput } = parseRequest(requestBody);
// Bygg svar
toResponse(text("Hello!"));
toResponse(shortcut("Running...", "MyShortcut", { key: "value" }));
toResponse(responses([
{ msg: "Step 1", shortcut: "First" },
{ msg: "Step 2", shortcut: "Second" }
]));
Se startserveren for et minimalt fungerende eksempel, eller agentserveren for en komplett AI-agent med verktøykall og bakgrunnsoppgaver.