SuperAPI AI 工具集

telnyx-webhooks

测试与质量

查看项目

更新于 10-15 22:14

技能介绍

用途:接收并验证 Telnyx Webhook,适用于搭建 Telnyx Webhook 处理器、排查 Ed25519 签名校验失败,以及处理 message.received、message.sent、message.finalized 等事件。

主要能力:Telnyx Webhook API v2 对每个事件使用 Ed25519 公钥签名(非 HMAC,也非 Standard Webhooks 规范),请求携带 telnyx-signature-ed25519(base64 编码的 64 字节签名)与 telnyx-timestamp(Unix 秒)两个头。签名消息为 ${telnyx-timestamp}|${raw_body},即时间戳、字面量竖线、原始请求体,不能使用重新序列化的 JSON。需用账户级公钥(Mission Control → Account Settings → Keys & Credentials → Public Key)验证,并设置 5 分钟时间戳容差防重放。

使用方式:资料给出 Node(tweetnacl)与 Python(PyNaCl)的手动校验函数,并提示 telnyx@7(Node)与 telnyx(Python)SDK 的 client.webhooks.unwrap() 在固定版本中接入了 Standard Webhooks 库,会拒绝真实 Telnyx Webhook,因此建议改用维护中的 Ed25519 库手动验证。完整处理器、路由、事件分发与测试见 examples/express/、examples/nextjs/、examples/fastapi/。环境变量示例:TELNYX_PUBLIC_KEY=eu2zvPjhY6odxV34Z/EsRiERvTodkev4Fq0SlK90Izg=。本地开发可用 npx hookdeck-cli listen 3000 telnyx --path /webhooks/telnyx 启动隧道。

事件与投递:Webhook 外层为 data 信封,含 event_type、id、occurred_at、payload、record_type 及 meta(attempt、delivered_to)。需在 2000ms 内返回 2xx,否则视为失败;失败后 Telnyx 以指数退避重试(最多约 6 次),再转至配置的 failover URL。Webhook URL、failover URL 与 API 版本(v1 旧版/未签名、v2 签名)按消息配置文件或连接/应用在 Mission Control 配置。

限制与注意:签名校验必须使用原始请求体;SDK 内置 unwrap 与 Telnyx 方案不兼容;需自行实现时间戳容差与幂等处理。资料未提供收费、价格或平台支持范围等信息。