Naar de hoofdinhoud gaan
  1. Documentatie/

API-referentie

Protocoloverzicht
#

PocketHook communiceert met uw server via een eenvoudig JSON-gebaseerd protocol over HTTPS. De app stuurt POST-verzoeken en verwacht JSON-antwoorden.

Authenticatie
#

PocketHook stuurt het geconfigureerde authenticatietoken als Bearer-token:

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

Verzoek
#

Standaardformaat
#

[{
  "sessionId": "550e8400-e29b-41d4-a716-446655440000",
  "action": "sendMessage",
  "chatInput": "user message"
}]
VeldTypeBeschrijving
sessionIdstring (UUID v4)Unieke sessie-identificatie
actionstringAltijd "sendMessage"
chatInputstringBericht van de gebruiker (max. 10.000 tekens)

OpenClaw-formaat
#

Wanneer de OpenClaw-modus is ingeschakeld, gebruikt PocketHook het OpenAI Chat Completions-formaat:

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

Met de header x-openclaw-agent-id ingesteld op het geconfigureerde agent-ID.

Antwoord
#

Enkel antwoord
#

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

Multi-actie antwoord
#

Retourneer een array voor sequentiële uitvoering:

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

PocketHook voert snelkoppelingen in volgorde uit en wacht tot elke snelkoppeling is voltooid voordat de volgende wordt gestart.

Antwoordvelden
#

VeldTypeVereistBeschrijving
msgstringJaTekst weergegeven in de chat. Ondersteunt Markdown, HTML, afbeeldingen en knopsyntaxis.
shortcutstringNeeNaam van een uit te voeren iOS-snelkoppeling.
dataobject | arrayNeeJSON-gegevens doorgegeven als invoer aan de snelkoppeling.
urlstringNeeURL om aan het bericht te koppelen.

OpenClaw-antwoord
#

In OpenClaw-modus analyseert PocketHook inline-markeringen uit de antwoordinhoud:

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

Contentweergave
#

Het msg-veld ondersteunt meerdere inhoudstypen:

Platte tekst
#

{ "msg": "Simple text message" }

Markdown
#

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

HTML
#

Moet beginnen met <div om als HTML te worden herkend:

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

Afbeeldingen
#

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

Elke URL die eindigt op .png, .jpg, .jpeg, .gif of .webp wordt weergegeven als afbeelding.

Knoppen
#

Interactieve knoppen weergegeven onder het bericht. Formaat: Button: Title | actionType: actionValue

Drie actietypes:

  • sendMessage: text — stuurt de tekst als nieuw bericht naar de server
  • openURL: https://... — opent de URL in de browser
  • triggerShortcut: ShortcutName — voert een iOS-snelkoppeling uit
{ "msg": "Which one do you prefer?\nButton: Option A | sendMessage: I choose option A\nButton: Option B | sendMessage: I choose option B" }

Gemengde acties:

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

Knopregels worden verborgen in de weergegeven tekst — alleen de interactieve knoppen verschijnen onder het bericht.

Health Check
#

PocketHook ondersteunt een optioneel health check-eindpunt:

  • Methode: GET
  • Verwacht antwoord: Platte tekst true of false
  • URL: Apart geconfigureerd in Instellingen

Achtergrondpolling
#

Wanneer ingeschakeld, stuurt PocketHook periodiek een GET-verzoek naar de polling-URL:

  • Als het antwoord true is, stuurt PocketHook het geconfigureerde ophaalberich naar de hoofdserver
  • Pollingintervallen: 5, 15, 30, 60 of 120 minuten
  • Vereist meldingstoestemming voor achtergrondwaarschuwingen

Agent Server: Gebruik https://your-host/jobs als polling-URL. Retourneert true wanneer er voltooide achtergrondtaakresultaten wachten op levering.

SDK
#

Gebruik het npm-pakket pockethook-sdk om antwoorden te bouwen met TypeScript:

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

// Inkomend verzoek analyseren en valideren
const { sessionId, chatInput } = parseRequest(requestBody);

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

Zie de starterserver voor een minimaal werkend voorbeeld, of de agentserver voor een volledige AI-agent met toolaanroepen en achtergrondtaken.