ข้ามไปยังเนื้อหาหลัก
  1. เอกสารประกอบ/

อ้างอิง API

ภาพรวมโปรโตคอล
#

PocketHook สื่อสารกับเซิร์ฟเวอร์ของคุณโดยใช้โปรโตคอลแบบ JSON อย่างง่ายผ่าน HTTPS แอปส่งคำขอ POST และคาดหวังการตอบกลับแบบ JSON

การยืนยันตัวตน
#

PocketHook ส่งโทเค็นยืนยันตัวตนที่กำหนดค่าไว้เป็น Bearer token:

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

คำขอ
#

รูปแบบมาตรฐาน
#

[{
  "sessionId": "550e8400-e29b-41d4-a716-446655440000",
  "action": "sendMessage",
  "chatInput": "user message"
}]
ฟิลด์ชนิดคำอธิบาย
sessionIdstring (UUID v4)ตัวระบุเซสชันที่ไม่ซ้ำกัน
actionstringเป็น "sendMessage" เสมอ
chatInputstringข้อความของผู้ใช้ (สูงสุด 10,000 ตัวอักษร)

รูปแบบ OpenClaw
#

เมื่อเปิดใช้โหมด OpenClaw PocketHook จะใช้รูปแบบ OpenAI Chat Completions:

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

พร้อมส่วนหัว x-openclaw-agent-id ที่ตั้งค่าเป็น ID ของเอเจนต์ที่กำหนด

การตอบกลับ
#

การตอบกลับเดี่ยว
#

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

การตอบกลับหลายการกระทำ
#

ส่งคืนอาร์เรย์สำหรับการทำงานตามลำดับ:

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

PocketHook ทำงานคำสั่งลัดตามลำดับ โดยรอให้แต่ละคำสั่งเสร็จสมบูรณ์ก่อนเรียกใช้คำสั่งถัดไป

ฟิลด์การตอบกลับ
#

ฟิลด์ชนิดจำเป็นคำอธิบาย
msgstringใช่ข้อความที่แสดงในแชท รองรับ Markdown, HTML, รูปภาพ และไวยากรณ์ปุ่ม
shortcutstringไม่ชื่อคำสั่งลัด iOS ที่จะเรียกใช้
dataobject | arrayไม่ข้อมูล JSON ที่ส่งเป็นอินพุตให้คำสั่งลัด
urlstringไม่URL ที่จะเชื่อมโยงกับข้อความ

การตอบกลับ OpenClaw
#

ในโหมด OpenClaw PocketHook จะแยกวิเคราะห์ตัวระบุแบบอินไลน์จากเนื้อหาการตอบกลับ:

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

การแสดงผลเนื้อหา
#

ฟิลด์ msg รองรับเนื้อหาหลายประเภท:

ข้อความธรรมดา
#

{ "msg": "Simple text message" }

Markdown
#

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

HTML
#

ต้องเริ่มต้นด้วย <div เพื่อให้ถูกตรวจจับว่าเป็น HTML:

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

รูปภาพ
#

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

URL ใดก็ตามที่ลงท้ายด้วย .png, .jpg, .jpeg, .gif หรือ .webp จะแสดงเป็นรูปภาพ

ปุ่ม
#

ปุ่มโต้ตอบที่แสดงด้านล่างข้อความ รูปแบบ: Button: Title | actionType: actionValue

สามประเภทการกระทำ:

  • sendMessage: text — ส่งข้อความเป็นข้อความใหม่ไปยังเซิร์ฟเวอร์
  • openURL: https://... — เปิด URL ในเบราว์เซอร์
  • triggerShortcut: ShortcutName — เรียกใช้คำสั่งลัด iOS
{ "msg": "Which one do you prefer?\nButton: Option A | sendMessage: I choose option A\nButton: Option B | sendMessage: I choose option B" }

การกระทำแบบผสม:

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

บรรทัดปุ่มจะถูกซ่อนจากข้อความที่แสดง — เฉพาะปุ่มโต้ตอบเท่านั้นที่ปรากฏด้านล่างข้อความ

Health Check
#

PocketHook รองรับ endpoint ตรวจสอบสุขภาพเสริม:

  • วิธีการ: GET
  • การตอบกลับที่คาดหวัง: ข้อความธรรมดา true หรือ false
  • URL: กำหนดค่าแยกต่างหากในการตั้งค่า

การสำรวจในพื้นหลัง
#

เมื่อเปิดใช้ PocketHook จะส่งคำขอ GET ไปยัง URL สำรวจเป็นระยะ:

  • หากการตอบกลับเป็น true PocketHook จะส่งข้อความดึงข้อมูลที่กำหนดไปยังเซิร์ฟเวอร์หลัก
  • ช่วงเวลาสำรวจ: 5, 15, 30, 60 หรือ 120 นาที
  • ต้องได้รับอนุญาตการแจ้งเตือนสำหรับการแจ้งเตือนในพื้นหลัง

Agent Server: ใช้ https://your-host/jobs เป็น URL สำรวจ คืนค่า true เมื่อมีผลลัพธ์งานพื้นหลังที่เสร็จสมบูรณ์รอการส่งมอบ

SDK
#

ใช้แพ็กเกจ npm pockethook-sdk เพื่อสร้างการตอบกลับด้วย TypeScript:

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

// แยกวิเคราะห์และตรวจสอบคำขอที่เข้ามา
const { sessionId, chatInput } = parseRequest(requestBody);

// สร้างการตอบกลับ
toResponse(text("Hello!"));
toResponse(shortcut("Running...", "MyShortcut", { key: "value" }));
toResponse(responses([
  { msg: "Step 1", shortcut: "First" },
  { msg: "Step 2", shortcut: "Second" }
]));

ดูเซิร์ฟเวอร์เริ่มต้น สำหรับตัวอย่างการทำงานขั้นต่ำ หรือเซิร์ฟเวอร์เอเจนต์ สำหรับเอเจนต์ AI เต็มรูปแบบพร้อมการเรียกใช้เครื่องมือและงานพื้นหลัง