SuperAPI AI 工具集

clio-webhooks

测试与质量

查看项目

更新于 10-15 22:14

技能介绍

用途:帮助开发者搭建 Clio Manage Webhook 接收端点,完成握手激活、签名验证与事件处理,并排查签名校验失败、Webhook 过期等问题。

主要能力:Clio 会向你的 URL 发送两类 POST。握手请求携带 X-Hook-Secret 头,端点需原样回显该头并返回 200 OK,Clio 文档称握手成功前 Webhook 不启用;该密钥由 Clio 生成,需保存为 CLIO_WEBHOOK_SECRET。后续事件请求使用 HMAC-SHA256(shared_secret, 原始请求体) 生成摘要,放在 X-Hook-Signature 头中。文档未说明编码方式,实测为 64 位小写十六进制,示例代码同时接受 hex 与 base64。验证须使用原始请求体,不可用重新序列化的 JSON,并做时序安全比较。事件名位于 meta.event,meta.webhook_id 标识 Webhook。支持 created、updated、deleted,Matters 另有 matter_opened、matter_pended、matter_closed。可订阅模型包括 activity、bill、calendar_entry、clio_payments_payment、communication、contact、document、folder、matter、task。

使用方式:先处理握手(含 X-Hook-Secret 的请求直接回显,不做签名验证),再验证签名,最后按事件分发。创建 Webhook 需 OAuth webhook scope 及对应模型 scope,示例命令:curl -X POST https://app.clio.com/api/v4/webhooks.json -H "Authorization: Bearer $CLIO_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{"data":{"url":"https://your.app/webhooks/clio","model":"matter","fields":"id,etag","events":["created","updated","deleted"]}}'。区域基址不同:US app.clio.com、EU eu.app.clio.com、AU au.app.clio.com、CA ca.app.clio.com,仅接受 https。本地调试可用 npx hookdeck-cli listen 3000 clio --path /webhooks/clio。

限制:Webhook 默认创建后 3 天过期,通过 expires_at 最长可设 31 天,Clio 不跟踪使用情况,需在到期前 PATCH 更新 expires_at 续期。签名编码官方未明确,需按实测处理。生成文件建议注明来源注释。