Hoppa till huvudinnehållet
  1. Dokumentation/

API-referens

Protokollöversikt
#

PocketHook kommunicerar med din server med ett enkelt JSON-baserat protokoll över HTTPS. Appen skickar POST-förfrågningar och förväntar sig JSON-svar.

Autentisering
#

PocketHook skickar den konfigurerade autentiseringstoken som en Bearer-token:

Authorization: Bearer your-secret-token
Content-Type: application/json

Förfrågan
#

Standardformat
#

[{
  "sessionId": "550e8400-e29b-41d4-a716-446655440000",
  "action": "sendMessage",
  "chatInput": "user message"
}]
FältTypBeskrivning
sessionIdstring (UUID v4)Unik sessionsidentifierare
actionstringAlltid "sendMessage"
chatInputstringAnvändarens meddelande (max 10 000 tecken)

OpenClaw-format
#

När OpenClaw-läget är aktiverat använder PocketHook OpenAI Chat Completions-formatet:

{
  "model": "agent-id",
  "messages": [
    { "role": "user", "content": "user message" }
  ]
}

Med headern x-openclaw-agent-id inställd på det konfigurerade agent-ID:t.

Svar
#

Enskilt svar
#

{
  "msg": "Display message",
  "shortcut": "ShortcutName",
  "data": { "key": "value" },
  "url": "https://example.com"
}

Flerhandlingssvar
#

Returnera en array för sekventiell körning:

[
  { "msg": "Starting...", "shortcut": "FirstAction" },
  { "msg": "Processing...", "shortcut": "SecondAction", "data": { "input": "from-first" } },
  { "msg": "Done!", "url": "https://results.example.com" }
]

PocketHook kör genvägar i ordning och väntar på att varje genväg slutförs innan nästa körs.

Svarsfält
#

FältTypObligatorisktBeskrivning
msgstringJaText som visas i chatten. Stöder Markdown, HTML, bilder och knappsyntax.
shortcutstringNejNamn på en iOS-genväg att köra.
dataobject | arrayNejJSON-data som skickas som indata till genvägen.
urlstringNejURL att koppla till meddelandet.

OpenClaw-svar
#

I OpenClaw-läge analyserar PocketHook inbäddade markörer från svarsinnehållet:

Here's your result! [SHORTCUT:ProcessData] [DATA:{"key":"value"}] [URL:https://example.com]

Innehållsrendering
#

Fältet msg stöder flera innehållstyper:

Vanlig text
#

{ "msg": "Simple text message" }

Markdown
#

{ "msg": "**Bold**, *italic*, `code`, and [links](https://example.com)" }

HTML
#

Måste börja med <div för att detekteras som HTML:

{ "msg": "<div><h2>Title</h2><p>Rich <strong>HTML</strong> content</p></div>" }

Bilder
#

{ "msg": "https://example.com/image.png" }

Alla URL:er som slutar med .png, .jpg, .jpeg, .gif eller .webp renderas som bilder.

Knappar
#

Interaktiva knappar renderade under meddelandet. Format: Button: Title | actionType: actionValue

Tre åtgärdstyper:

  • sendMessage: text — skickar texten som ett nytt meddelande till servern
  • openURL: https://... — öppnar URL:en i webbläsaren
  • triggerShortcut: ShortcutName — kör en iOS-genväg
{ "msg": "Which one do you prefer?\nButton: Option A | sendMessage: I choose option A\nButton: Option B | sendMessage: I choose option B" }

Blandade åtgärder:

{ "msg": "Here are the results:\nButton: View details | openURL: https://example.com/item\nButton: Add to cart | triggerShortcut: addToCart" }

Knapprader döljs från den visade texten — bara de interaktiva knapparna visas under meddelandet.

Health Check
#

PocketHook stöder en valfri health check-slutpunkt:

  • Metod: GET
  • Förväntat svar: Vanlig text true eller false
  • URL: Konfigureras separat i Inställningar

Bakgrundsavfrågning
#

När aktiverad skickar PocketHook periodiskt en GET-förfrågan till avfrågnings-URL:en:

  • Om svaret är true skickar PocketHook det konfigurerade hämtningsmeddelandet till huvudservern
  • Avfrågningsintervall: 5, 15, 30, 60 eller 120 minuter
  • Kräver notifieringstillstånd för bakgrundsvarningar

Agent Server: Använd https://your-host/jobs som avfrågnings-URL. Returnerar true när det finns slutförda bakgrundsuppgiftsresultat som väntar på leverans.

SDK
#

Använd npm-paketet pockethook-sdk för att bygga svar med TypeScript:

import { text, shortcut, responses, toResponse, parseRequest } from "pockethook-sdk";

// Analysera och validera inkommande förfrågan
const { sessionId, chatInput } = parseRequest(requestBody);

// Bygga svar
toResponse(text("Hello!"));
toResponse(shortcut("Running...", "MyShortcut", { key: "value" }));
toResponse(responses([
  { msg: "Step 1", shortcut: "First" },
  { msg: "Step 2", shortcut: "Second" }
]));

Se startservern för ett minimalt fungerande exempel, eller agentservern för en komplett AI-agent med verktygsanrop och bakgrundsuppgifter.