T04 · Webhook 雙向對接

101創富精靈 H5 · Phase 2 Week 3-5 · 2026-04-26
✅ 完成 P0 Webhook Handler 12指令路由

📦 交付成果

🔗

webhook-handler.js — Worker 入口

部署至 Cloudflare Workers,接收所有 webhook 請求並路由至對應處理函數。支援 CORS、HMAC 簽名驗證、錯誤處理、完整日誌。

🛤️

COMMAND_ROUTER — 12 指令路由表

完整對接 T01 的 12 個指令:file.add / file.list / file.delete / file.search / file.tag / ai.classify / ai.summary / ai.extract / ocr.scan / r2.upload / r2.download / r2.list

📊

D1 日誌寫入

所有 webhook 請求寫入 logs 表(action/command/source/status/result),支援審計查詢。

🔗 Webhook 端點

// 請求格式(POST JSON) { "command": "file.add", "params": { "name": "合同-2026.pdf", "type": "application/pdf", "size": 204800, "hash": "sha256:abc123...", "tags": ["tag-contract"], "source": "clawbot" }, "id": "req-uuid-123", "source": "clawbot" } // 回應格式 { "id": "req-uuid-123", "status": "ok", "command": "file.add", "result": { "id": "generated-uuid", "name": "合同-2026.pdf", "status": "pending", "tags": ["tag-contract"] }, "timestamp": 1745610000000 }

📡 Webhook 配置(Clawbot/微信)

# Clawbot Webhook URL 配置 Webhook URL: https://aih5.pages.dev/webhook-handler.js Method: POST Content-Type: application/json Signature Header: X-Webhook-Signature (HMAC-SHA256) # 可選:訂閱事件 file.add → 文件上傳時觸發 ai.classify → AI 分類完成時觸發 ocr.scan → OCR 識別完成時觸發
✅ webhook-handler.js 部署完成。H5 頁面即可調用 /webhook-handler.js 接口與 Clawbot/微信雙向通信。

🔐 安全性配置

層級方式說明
網絡層HTTPS OnlyCloudflare Pages 強制 HTTPS
應用層HMAC-SHA256X-Webhook-Signature 頭校驗請求真實性
數據層D1 logs所有請求寫入日誌表,支援審計
速率限制Cloudflare Rate Limit配置 Cloudflare 防火牆規則
// 簽名生成示例(JavaScript) const crypto = require('crypto'); const body = JSON.stringify({ command: 'file.add', params: {...} }); const signature = crypto .createHmac('sha256', SECRET) .update(body) .digest('base64'); // header: X-Webhook-Signature: {signature}