SuperAPI AI 工具集

cronofy-webhooks

测试与质量

查看项目

更新于 10-15 22:14

技能介绍

用途:接收并验证 Cronofy 的推送通知(webhook)。Cronofy 是日历 API/调度基础设施,其 webhook 称为 push notifications,投递到通知渠道的 callback_url。注意 Cronofy 与 Calendly 是不同公司,签名方案、请求头和载荷均不同。

主要能力:验证 Cronofy-HMAC-SHA256 请求头;处理各类通知类型;创建通知渠道;调试签名校验失败;处理 change 通知并拉取实际变更。

验证方式:Cronofy 对原始请求体计算 HMAC-SHA256,密钥为应用的 client secret(OAuth secret,前缀 CRN_),base64 编码。请求头为逗号分隔列表,每个活跃 client secret 对应一个 HMAC(支持密钥轮换),任一匹配即通过。使用标准 base64 而非 base64url。文档给出的测试向量可用于校验实现。

载荷:判别字段为 notification.type(请求体字段),无事件类型请求头,仅发送 Cronofy-HMAC-SHA256 与 Content-Type。通知类型包括 verification、change、profile_disconnected、conferencing_profile_disconnected、profile_initial_sync_completed、gdpr_requested;处理程序需有默认分支忽略未知类型并返回 2xx。change 通知不含变更事件,需调用 Read Events 并传 last_modified=changes_since 拉取增量。

投递语义:需在 5 秒内返回 2xx,否则视为失败;重试持续 24 小时,超时后渠道自动关闭;无重放保护,应基于 channel_id + changes_since 做幂等;未公布来源 IP 白名单。

用法:无全局 webhook URL,callback_url 属于按账户创建的渠道,通过 POST $CRONOFY_DATA_CENTER_URL/v1/channels 创建。本地开发可用 npx hookdeck-cli listen 3000 cronofy --path /webhooks/cronofy。Cronofy 多区域,渠道创建与后续读取须使用同一数据中心。

限制:资料未提供收费、价格等信息。