Siirry pääsisältöön
  1. Dokumentaatio/

API-viite

Protokollan yleiskatsaus
#

PocketHook kommunikoi palvelimesi kanssa käyttäen yksinkertaista JSON-pohjaista protokollaa HTTPS:n yli. Sovellus lähettää POST-pyyntöjä ja odottaa JSON-vastauksia.

Todennus
#

PocketHook lähettää määritetyn todennustokenin Bearer-tokenina:

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

Pyyntö
#

Vakiomuoto
#

[{
  "sessionId": "550e8400-e29b-41d4-a716-446655440000",
  "action": "sendMessage",
  "chatInput": "user message"
}]
KenttäTyyppiKuvaus
sessionIdstring (UUID v4)Yksilöllinen istuntotunniste
actionstringAina "sendMessage"
chatInputstringKäyttäjän viesti (enintään 10 000 merkkiä)

OpenClaw-muoto
#

Kun OpenClaw-tila on käytössä, PocketHook käyttää OpenAI Chat Completions -muotoa:

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

Otsikolla x-openclaw-agent-id asetettuna määritettyyn agenttitunnukseen.

Vastaus
#

Yksittäinen vastaus
#

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

Monitoimintovastaus
#

Palauta taulukko peräkkäistä suoritusta varten:

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

PocketHook suorittaa pikakuvakkeet järjestyksessä, odottaen kunkin valmistumista ennen seuraavan suorittamista.

Vastauksen kentät
#

KenttäTyyppiPakollinenKuvaus
msgstringKylläChatissa näytettävä teksti. Tukee Markdownia, HTML:ää, kuvia ja painikesyntaksia.
shortcutstringEiSuoritettavan iOS-pikakuvakkeen nimi.
dataobject | arrayEiJSON-data, joka välitetään pikakuvakkeen syötteenä.
urlstringEiViestiin liitettävä URL.

OpenClaw-vastaus
#

OpenClaw-tilassa PocketHook jäsentää sisäiset merkinnät vastauksen sisällöstä:

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

Sisällön renderöinti
#

msg-kenttä tukee useita sisältötyyppejä:

Tavallinen teksti
#

{ "msg": "Simple text message" }

Markdown
#

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

HTML
#

Täytyy alkaa <div-merkinnällä, jotta se tunnistetaan HTML:ksi:

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

Kuvat
#

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

Mikä tahansa URL, joka päättyy .png, .jpg, .jpeg, .gif tai .webp, renderöidään kuvana.

Painikkeet
#

Interaktiiviset painikkeet renderöidään viestin alapuolelle. Muoto: Button: Title | actionType: actionValue

Kolme toimintotyyppiä:

  • sendMessage: text — lähettää tekstin uutena viestinä palvelimelle
  • openURL: https://... — avaa URL:n selaimessa
  • triggerShortcut: ShortcutName — suorittaa iOS-pikakuvakkeen
{ "msg": "Which one do you prefer?\nButton: Option A | sendMessage: I choose option A\nButton: Option B | sendMessage: I choose option B" }

Sekatoiminnot:

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

Painikerivit piilotetaan näytetystä tekstistä — vain interaktiiviset painikkeet näkyvät viestin alapuolella.

Health Check
#

PocketHook tukee valinnaista health check -päätepistettä:

  • Metodi: GET
  • Odotettu vastaus: Tavallinen teksti true tai false
  • URL: Määritetään erikseen Asetuksissa

Taustakysely
#

Kun käytössä, PocketHook lähettää ajoittain GET-pyynnön kyselyosoitteeseen:

  • Jos vastaus on true, PocketHook lähettää määritetyn hakuviestin pääpalvelimelle
  • Kyselyvälit: 5, 15, 30, 60 tai 120 minuuttia
  • Vaatii ilmoitusluvan taustahälytyksille

Agent Server: Käytä https://your-host/jobs kyselyosoitteena. Palauttaa true, kun valmistuneita taustatyötehtävien tuloksia on toimitettavana.

SDK
#

Käytä pockethook-sdk npm-pakettia vastausten rakentamiseen TypeScriptillä:

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

// Jäsennä ja vahvista saapuva pyyntö
const { sessionId, chatInput } = parseRequest(requestBody);

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

Katso aloituspalvelin minimaalisesta toimivasta esimerkistä, tai agenttipalvelin täydellisestä AI-agentista työkalukutsuilla ja taustatyötehtävillä.