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"
}]
| Medan | Jenis | Penerangan |
|---|---|---|
sessionId | string (UUID v4) | Pengecam sesi unik |
action | string | Sentiasa "sendMessage" |
chatInput | string | Mesej 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#
| Medan | Jenis | Diperlukan | Penerangan |
|---|---|---|---|
msg | string | Ya | Teks yang dipaparkan dalam sembang. Menyokong Markdown, HTML, imej dan sintaks butang. |
shortcut | string | Tidak | Nama Shortcuts iOS untuk dilaksanakan. |
data | object | array | Tidak | Data JSON yang dihantar sebagai input kepada pintasan. |
url | string | Tidak | URL 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 pelayanopenURL: https://...— membuka URL dalam pelayartriggerShortcut: 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
trueataufalse - 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.