这是一个处理 Intercom Webhook 的技能,适用于在开发中心(Developer Hub)配置主题订阅、调试 X-Hub-Signature(HMAC-SHA1)校验失败、处理会话/联系人/工单事件,以及响应注册 Webhook 时的 ping 握手。
签名机制:Intercom 使用应用的 client_secret(Developer Hub → Basic Info 页面)对原始 JSON 请求体做 HMAC-SHA1 签名,写入 X-Hub-Signature 头,格式为 sha1=<40位十六进制摘要>。校验时需对原始请求体计算,不能使用已解析的 JSON,因此 Express 中应使用 express.raw({ type: 'application/json' })。Node.js 示例用 crypto.createHmac('sha1', clientSecret) 与 crypto.timingSafeEqual;Python 示例用 hmac.new(client_secret.encode(), raw_body, hashlib.sha1) 与 hmac.compare_digest。
必要用法:先验签,再解析负载;通知包体统一为 notification_event 结构,实际资源位于 notification.data.item,事件类型在 topic 字段。常见主题包括 ping、conversation.user.created、conversation.user.replied、conversation.admin.replied、conversation.admin.assigned、conversation.admin.closed、contact.user.created、contact.lead.created、ticket.created 等。
环境变量:INTERCOM_CLIENT_SECRET。本地开发可用 npx hookdeck-cli listen 3000 intercom --path /webhooks/intercom 转发至 localhost,并把打印出的 URL 填入 Developer Hub。
限制与说明:资料未提供具体收费与价格信息;建议搭配 webhook-handler-patterns 技能处理幂等(以 notification.id 为键)、错误处理与重试逻辑。