七种事件,直接来自引擎
按端点精确订阅你需要的事件——从垃圾裁决到成员变动。
spam.detectedmessage.suspicioususer.banneduser.kickeduser.muteduser.joineduser.left每个事件都装在一个紧凑的 JSON 信封里:id、type、created_at、group_id 以及事件数据——id 在多次重试间保持稳定,因此去重只是一次集合查找。
重试时间表,与实际运行分毫不差
在大约八小时内尝试六次——足以扛过你这一端的一次部署、一次重启或一次彻底宕机。
0立即+1m+5m+30m+2h+6h最后一次尝试可以据以构建的送达
至少一次送达
每个事件都至少送达一次。你的端点用任意 2xx 来确认——其他任何响应都会回到重试队列。
用于去重的稳定 id
每个事件都有一个能挺过重试的稳定 id。你这一端的去重只是一次查找,而不是一种启发式猜测。
杜绝僵尸端点
一个连续多天失败的端点会被自动停用——你会收到一条 Telegram 私信,而不是数据里一段无声的空白。
测试 ping
一键式的测试事件,像真事件一样带签名——在任何一个真实事件依赖它之前,先验证你的处理器。
可查验的历史
每个端点都有完整的送达历史:每一次尝试、状态和时间戳——调试你的接收方从来不用靠猜。
仅限 HTTPS,始终签名
端点必须是公开的 HTTPS URL,且每个载荷都带签名。传输与来源都得到保障。
验证每一次送达
你这端三行代码——便没人能伪造或重放一个事件。
# X-Telm-Signature: v1=<hex>
expected = hmac_sha256(secret, timestamp + "." + body)
valid = constant_time_eq("v1=" + hex(expected), header)用推送,别轮询
轮询 API 只能在你发问时告诉你发生了什么;Webhook 则在事情发生的那一刻就告诉你。注册一个 HTTPS 端点,选好你在意的事件,Telm 就会以 JSON 形式把它们推送到你的服务器——一波垃圾攻击、一次封禁、一场加群突袭——就在引擎动手的那一秒。
每一次送达都带签名。X-Telm-Signature 响应头携带的是用你端点密钥对时间戳和正文算出的 HMAC-SHA256,因此你的服务器只需三行代码就能同时验证来源与新鲜度。载荷只走 HTTPS 传输。
送达是为真实的互联网设计的——在那里接收方会宕机。事件以至少一次的方式送达,并带有一个稳定的 id 用于去重;失败会按逐渐拉长的时间表重试——立即,然后在 1 分钟和 5 分钟后、30 分钟、2 小时和 6 小时。一个连续多天失败的端点会被自动停用,你会为此收到一条 Telegram 消息,而不是一段无声的空白。
一切都可查验:上线前先发一个测试 ping,并随时浏览送达历史——一次尝试接一次尝试、一个状态接一个状态——只要你需要调试管道自己这一端。
常见问题
我如何验证一个事件确实来自 Telm?
每一次送达都携带一个 X-Telm-Signature 响应头:用你端点密钥对 "timestamp.body" 算出的 HMAC-SHA256。在你这一端重新计算它,以恒定时间比较,并拒收任何超过几分钟的内容,以排除重放。
如果事件触发时我的服务器宕机了会怎样?
Telm 会按逐渐拉长的时间表重试——立即,然后在 1 分钟、5 分钟、30 分钟、2 小时和 6 小时后。任何 2xx 响应都算作已送达。事件带有稳定的 id,因此一次重试绝不会在你的系统里变成重复。
一个坏掉的端点会永远刷屏吗?
不会。一个连续失败约二十次、且三天内没有一次成功的端点会被自动停用,你会收到一条 Telegram 通知。修好你这一端,一键即可重新启用。
上线前我如何测试我的集成?
直接从仪表盘或 API 向任意端点发一个测试 ping——它会像真实事件一样带签名到达。送达历史会显示每一次尝试及其状态。
哪些套餐包含 Webhook?
Webhook 是完整 API 套装的一部分,包含在 Pro 和 Business 套餐中。