Skip to main content
  1. Dokumentasjon/

API-referanse

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"
}]
FeltTypeBeskrivelse
sessionIdstring (UUID v4)Unik sesjonsidentifikator
actionstringAlltid "sendMessage"
chatInputstringBrukerens 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
#

FeltTypePåkrevdBeskrivelse
msgstringJaTekst vist i chatten. Støtter Markdown, HTML, bilder og knappsyntaks.
shortcutstringNeiNavn på en iOS-snarvei som skal utføres.
dataobject | arrayNeiJSON-data sendt som inndata til snarveien.
urlstringNeiURL å 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 serveren
  • openURL: https://... — åpner URL-en i nettleseren
  • triggerShortcut: 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 true eller false
  • 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.