Appearance
Telegram 通知配置
Telegram 通知适合接收任务启动、开平仓、单腿异常、风控拦截、服务离线和 Kill Switch 等即时告警。建议为生产告警单独创建机器人和群组,不要与日常聊天机器人共用 Token。
准备信息
配置前需要准备:
Bot Token:机器人访问 Telegram Bot API 的密钥Chat ID:通知接收者、群组或频道的唯一编号Message Thread ID:群组启用话题时可选,用于把告警投递到指定话题
Bot Token 等同于机器人密码。不要放进 Markdown、截图、Git、聊天记录或浏览器前端代码。
1. 创建机器人
- 在 Telegram 中打开 @BotFather。
- 发送
/newbot,依次设置机器人名称和以bot结尾的用户名。 - 复制 BotFather 返回的 Token,立即保存到密码管理器。
- 如需发送到群组,把机器人加入目标群组;只负责发通知时不需要授予多余的群管理权限。
- 在私聊或目标群组中向机器人发送
/start或任意一条消息,使 Telegram 生成可查询的更新。
2. 验证 Token
在服务器终端执行以下请求。请把占位符替换为真实 Token,但不要把执行结果发给他人。
bash
curl --fail --silent --show-error \
"https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getMe"返回内容中 ok 为 true,并且用户名与刚创建的机器人一致,表示 Token 可用。
3. 获取 Chat ID
先向机器人或机器人所在群组发送一条测试消息,然后执行:
bash
curl --fail --silent --show-error \
"https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates"在返回 JSON 中查找 message.chat.id:
- 私聊通常是正整数
- 群组或超级群组通常是负整数
- 如果返回
result: [],先重新发送一条消息再查询 - 如果机器人已配置 Webhook,
getUpdates不能同时使用;应从现有接入端日志或管理界面取得 Chat ID
4. 发送测试通知
bash
curl --fail --silent --show-error \
-X POST \
-H "Content-Type: application/json" \
-d '{"chat_id":"<YOUR_CHAT_ID>","text":"熊猫寨告警通道测试成功"}' \
"https://api.telegram.org/bot<YOUR_BOT_TOKEN>/sendMessage"终端返回 ok: true 且 Telegram 收到消息后,再进入工具完成配置。
5. 在工具中填写
进入“告警通知”或“通知设置”页面,选择 Telegram,并填写:
| 字段 | 填写内容 |
|---|---|
| Bot Token | BotFather 生成的完整 Token |
| Chat ID | message.chat.id 的完整值,保留负号 |
| Thread ID | 仅在群组话题中使用;普通私聊和群组留空 |
| 告警级别 | 建议至少开启 warning 与 critical |
| 通知事件 | 开仓失败、单腿成交、对账异常、风控阻断、服务离线 |
保存后点击“发送测试通知”。只有测试消息成功到达目标会话,才算配置完成。
安全建议
- 机器人只加入告警群,不加入公开群
- Token 只保存在服务端加密配置或 Secret 管理器中
- 告警正文不要包含 API Secret、私钥、完整订单签名或登录口令
- 怀疑 Token 泄露时,立即在 BotFather 撤销并生成新 Token
- 为严重告警同时配置邮箱或飞书,避免单一通道故障造成漏报
常见问题
返回 401 Unauthorized
Token 错误、已被撤销或复制时包含空格。重新从 BotFather 获取并完整粘贴。
返回 400 chat not found
Chat ID 错误,或机器人尚未加入目标群。重新发送消息并用 getUpdates 核对 chat.id。
私聊能收到,群组收不到
确认机器人仍在群组内,Chat ID 保留了负号,并检查群组权限。频道通知通常需要把机器人设为具有发消息权限的管理员。
服务器请求超时
检查服务器 DNS、HTTPS 出站访问、代理和所在地网络策略。不要因为通知失败而降低交易风控或跳过订单对账。
