Skip to main content
  1. Dokumentasi/

Rujukan API

Gambaran Keseluruhan Protokol
#

PocketHook berkomunikasi dengan pelayan anda menggunakan protokol mudah berasaskan JSON melalui HTTPS. Aplikasi menghantar permintaan POST dan mengharapkan respons JSON.

Pengesahan
#

PocketHook menghantar token pengesahan yang dikonfigurasi sebagai Bearer token:

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

Permintaan
#

Format Standard
#

[{
  "sessionId": "550e8400-e29b-41d4-a716-446655440000",
  "action": "sendMessage",
  "chatInput": "user message"
}]
MedanJenisPenerangan
sessionIdstring (UUID v4)Pengecam sesi unik
actionstringSentiasa "sendMessage"
chatInputstringMesej pengguna (maks 10,000 aksara)

Format OpenClaw
#

Apabila mod OpenClaw diaktifkan, PocketHook menggunakan format OpenAI Chat Completions:

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

Dengan pengepala x-openclaw-agent-id ditetapkan kepada ID ejen yang dikonfigurasi.

Respons
#

Respons Tunggal
#

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

Respons Pelbagai Tindakan
#

Kembalikan tatasusunan untuk pelaksanaan berurutan:

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

PocketHook melaksanakan pintasan mengikut urutan, menunggu setiap satu selesai sebelum menjalankan yang seterusnya.

Medan Respons
#

MedanJenisDiperlukanPenerangan
msgstringYaTeks yang dipaparkan dalam sembang. Menyokong Markdown, HTML, imej dan sintaks butang.
shortcutstringTidakNama Shortcuts iOS untuk dilaksanakan.
dataobject | arrayTidakData JSON yang dihantar sebagai input kepada pintasan.
urlstringTidakURL untuk dikaitkan dengan mesej.

Respons OpenClaw
#

Dalam mod OpenClaw, PocketHook menghurai penanda sebaris daripada kandungan respons:

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

Pemaparan Kandungan
#

Medan msg menyokong pelbagai jenis kandungan:

Teks Biasa
#

{ "msg": "Simple text message" }

Markdown
#

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

HTML
#

Mesti bermula dengan <div untuk dikesan sebagai HTML:

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

Imej
#

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

Sebarang URL yang berakhir dengan .png, .jpg, .jpeg, .gif, atau .webp dipaparkan sebagai imej.

Butang
#

Butang interaktif dipaparkan di bawah mesej. Format: Button: Title | actionType: actionValue

Tiga jenis tindakan:

  • sendMessage: text — menghantar teks sebagai mesej baharu kepada pelayan
  • openURL: https://... — membuka URL dalam pelayar
  • triggerShortcut: ShortcutName — menjalankan Shortcuts iOS
{ "msg": "Which one do you prefer?\nButton: Option A | sendMessage: I choose option A\nButton: Option B | sendMessage: I choose option B" }

Tindakan campuran:

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

Baris butang disembunyikan daripada teks yang dipaparkan — hanya butang interaktif muncul di bawah mesej.

Health Check
#

PocketHook menyokong endpoint health check pilihan:

  • Kaedah: GET
  • Respons yang dijangka: Teks biasa true atau false
  • URL: Dikonfigurasi secara berasingan dalam Tetapan

Pengundian Latar Belakang
#

Apabila diaktifkan, PocketHook menghantar permintaan GET secara berkala ke URL pengundian:

  • Jika respons adalah true, PocketHook menghantar mesej pengambilan yang dikonfigurasi ke pelayan utama
  • Selang pengundian: 5, 15, 30, 60, atau 120 minit
  • Memerlukan kebenaran pemberitahuan untuk amaran latar belakang

Agent Server: Gunakan https://your-host/jobs sebagai URL Pengundian. Mengembalikan true apabila terdapat hasil tugas latar belakang yang selesai menunggu penghantaran.

SDK
#

Gunakan pakej npm pockethook-sdk untuk membina respons dengan TypeScript:

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

// Menghurai dan mengesahkan permintaan masuk
const { sessionId, chatInput } = parseRequest(requestBody);

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

Lihat pelayan permulaan untuk contoh kerja minimum, atau pelayan ejen untuk ejen AI lengkap dengan panggilan alat dan tugas latar belakang.