SuperAPI AI 工具集

statsig-webhooks

数据与分析

查看项目

更新于 10-15 22:14

技能介绍

该技能用于搭建 Statsig Event Webhook(Generic Webhook 集成)的接收端,涵盖签名校验、握手应答与事件解析。

用途:设置 Statsig webhook 处理器、排查 X-Statsig-Signature 校验失败、处理曝光事件或配置变更通知(Feature Gate、Experiment、Dynamic Config 的创建/更新)、解析批次 JSON 载荷、以及应答 url_verification 握手。

签名机制:Statsig 使用 HMAC-SHA256,Slack/Stripe 风格,非 Standard Webhooks 规范。签名内容为字面字符串 v0:{timestamp}:{raw_body},结果以 X-Statsig-Signature: v0=<hex> 发送。必须使用原始请求体校验,先解析 JSON 会改变字节顺序导致校验失败。时间戳头 X-Statsig-Request-Timestamp 为毫秒级 Unix 时间戳(13 位)。建议做重放保护(如超过 5 分钟拒绝,Statsig 未文档化容差)。

握手:保存集成时 Statsig 会 POST 校验请求,端点须回显 verification_code(返回 200 与 {"verification_code": "..."}),否则 webhook 静默注册失败。应先应答握手再强制签名校验。

载荷:曝光事件为顶层 JSON 数组;配置变更为 { "data": [...] } 包装,metadata 含 type、name、description、action。可用 Array.isArray(payload) ? payload : payload.data 统一处理。

示例:提供 express/、nextjs/、fastapi/ 完整实现。Express 需使用 express.raw({ type: 'application/json' }),Python 用 hmac 与 compare_digest。

环境变量:STATSIG_WEBHOOK_SECRET。本地开发:npx hookdeck-cli listen 3000 statsig --path /webhooks/statsig。生成文件顶部建议加来源注释。可搭配 webhook-handler-patterns 处理幂等、错误与重试。

限制:资料未说明收费、平台范围与具体重试细节。