Install
openclaw skills install @thcjp/telegram-msg-toolkit-freeopenclaw skills install @thcjp/telegram-msg-toolkit-free本工具箱封装 Telegram Bot API 的基础消息能力,让 AI Agent 能够通过 REST API 发送文本、图片、文件、位置、投票与转发消息,查询聊天信息,并管理 Bot 命令。免费版聚焦"能发能查"——覆盖 6 类基础消息发送与聊天信息读取;批量操作、群组管理、审核与 Webhook 等进阶能力留给专业版。
Telegram Bot API 使用 HTTP REST 接口,所有请求通过 https://api.telegram.org/bot<TOKEN>/<METHOD> 调用,响应为 JSON 格式。
| 能力 | 说明 | 免费版 |
|---|---|---|
| 文本消息 | 发送纯文本消息 | 是 |
| 图片发送 | 发送图片(URL 或上传) | 是 |
| 文件发送 | 发送文档/文件 | 是 |
| 位置发送 | 发送地理坐标 | 是 |
| 投票发送 | 发送原生投票 | 是 |
| 消息转发 | 转发消息到其他聊天 | 是 |
| 消息编辑 | 编辑 Bot 已发送消息 | 是 |
| 消息删除 | 删除 Bot 消息 | 是 |
| 聊天信息 | 群组/成员/管理员查询 | 是 |
| 邀请链接 | 生成与撤销邀请链接 | 是 |
| Bot 命令 | 设置与获取命令列表 | 是 |
| 批量发送 | 批量消息/批量投票 | 否(专业版) |
| 群组管理 | 创建/踢人/权限/封禁 | 否(专业版) |
| Webhook | 实时事件回调 | 否(专业版) |
| 频道管理 | 频道发布/管理 | 否(专业版) |
用input_params参数进行配置。
输入: 用户提供核心功能执行所需的指令和必要参数。 处理: 按照skill规范执行核心功能执行操作,遵循单一意图原则。 输出: 返回核心功能执行的执行结果,包含操作状态和输出数据。
input_params参数,支持创建/查询/导出操作用config_options参数进行配置。
输入: 用户提供参数配置与调用所需的指令和必要参数。 处理: 按照skill规范执行参数配置与调用操作,遵循单一意图原则。 输出: 返回参数配置与调用的执行结果,包含操作状态和输出数据。
config_options参数,支持修改/重置/导入操作用output_format参数进行配置。
输入: 用户提供结果处理与输出所需的指令和必要参数。 处理: 按照skill规范执行结果处理与输出操作,遵循单一意图原则。 输出: 返回结果处理与输出的执行结果,包含操作状态和输出数据。
output_format参数,支持导出/保存/转换操作
能力覆盖范围:本skill的核心能力覆盖以下场景关键词:Telegram、消息免费版、聊天信息查询与基、命令管理、消息工具箱、面向个人用户与独、立开发者、API、的基础消息能力、REST、直接调用、无需额外中间件、Use、when、接口对接、系统连接时使用、不适用于逆向工程等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。用户说"部署完成后通知 Telegram 群"。Agent 调用 sendMessage 发送文本消息到指定群组,包含版本号与状态。
curl -X POST "https://api.telegram.org/bot{{BOT_TOKEN}}/sendMessage" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "-1001234567890",
"text": "部署完成!版本 2.1.0 已上线生产环境。",
"parse_mode": "Markdown"
}'
用户说"把这张周报图表发到 Telegram"。Agent 调用 sendPhoto 发送图片,附带说明文字。
curl -X POST "https://api.telegram.org/bot{{BOT_TOKEN}}/sendPhoto" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "-1001234567890",
"photo": "https://example.com/weekly-report.png",
"caption": "本周活跃度报告\n日期:2026-07-17"
}'
用户说"在群里发起投票问下个版本优先做什么"。Agent 调用 sendPoll 发送原生投票。
curl -X POST "https://api.telegram.org/bot{{BOT_TOKEN}}/sendPoll" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "-1001234567890",
"question": "下个版本优先开发哪个功能?",
"options": ["暗色模式", "导出PDF", "团队共享", "API访问"],
"allows_multiple_answers": false
}'
/newbot 命令)-100 开头)sendMessage 发送第一条消息1. 在 Telegram 中搜索 @BotFather
2. 发送 /newbot 命令
3. 按提示输入 Bot 名称与用户名
4. 获取 HTTP API token(格式:123456789:ABCdef...)
# 先将 Bot 加入群组,然后在群中发一条消息
curl "https://api.telegram.org/bot{{BOT_TOKEN}}/getUpdates" | jq '.result[-1].message.chat.id'
curl -X POST "https://api.telegram.org/bot{{BOT_TOKEN}}/sendMessage" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "CHAT_ID",
"text": "Hello from AI Agent!"
}'
# 环境变量配置
export TELEGRAM_BOT_TOKEN="123456789:ABCdefGHIjklMNOpqrSTUvwxYZ"
# 在命令中引用
curl -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
-H "Content-Type: application/json" \
-d '{"chat_id": "-1001234567890", "text": "Test message"}'
| 类型 | 格式 | 示例 |
|---|---|---|
| 私聊 | 用户数字 ID | 123456789 |
| 群组 | 负数 | -1001234567890 |
| 频道 | 负数(公开频道可用 @username) | -1009876543210 或 @mychannel |
# Markdown 格式
curl -X POST "https://api.telegram.org/bot{{BOT_TOKEN}}/sendMessage" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "-1001234567890",
"text": "*加粗* _斜体_ `代码`\n[链接](https://example.com)",
"parse_mode": "MarkdownV2",
"disable_web_page_preview": true
}'
# HTML 格式
curl -X POST "https://api.telegram.org/bot{{BOT_TOKEN}}/sendMessage" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "-1001234567890",
"text": "<b>加粗</b> <i>斜体</i> <code>代码</code>",
"parse_mode": "HTML"
}'
curl -X POST "https://api.telegram.org/bot{{BOT_TOKEN}}/sendMessage" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "-1001234567890",
"text": "请选择操作:",
"reply_markup": {
"inline_keyboard": [
[
{"text": "确认", "callback_data": "confirm"},
{"text": "取消", "callback_data": "cancel"}
]
]
}
}'
# 设置命令列表
curl -X POST "https://api.telegram.org/bot{{BOT_TOKEN}}/setMyCommands" \
-H "Content-Type: application/json" \
-d '{
"commands": [
{"command": "start", "description": "开始使用"},
{"command": "help", "description": "获取帮助"},
{"command": "status", "description": "查看状态"},
{"command": "report", "description": "获取报告"}
]
}'
# 获取命令列表
curl "https://api.telegram.org/bot{{BOT_TOKEN}}/getMyCommands"
Telegram Bot API 限制:全局约 30 条消息/秒,单个聊天约 1 条消息/秒。收到 429 响应时按 retry_after 等待后重试。
parse_modeMarkdownV2(注意转义特殊字符)HTML 格式sendPhoto 会压缩图片。如需保持原始质量,改用 sendDocument 发送:
curl -X POST "https://api.telegram.org/bot{{BOT_TOKEN}}/sendDocument" \
-F "chat_id=-1001234567890" \
-F "document=@/path/to/image.png"
Bot 只能删除自己发送的消息,或在 Bot 为管理员的群组中删除他人消息。群组中超过 48 小时的消息无法删除。
getUpdates(长轮询)与 Webhook 互斥。若 Webhook 已设置,调用 getUpdates 返回 409 冲突。删除 Webhook 后才能使用长轮询:
curl "https://api.telegram.org/bot{{BOT_TOKEN}}/deleteWebhook"
获取到的聊天 ID 应持久化存储,避免每次都通过 getUpdates 重新获取。私聊 ID 是用户数字 ID,群组以 -100 开头。
A:Bot 未被加入目标聊天,或被聊天管理员屏蔽。将 Bot 加入群组并确保有发送消息权限。
A:聊天 ID 不正确。群组以 -100 开头(如 -1001234567890),私聊用用户数字 ID。检查 ID 是否完整。
A:MarkdownV2 需要转义特殊字符(_、*、[、]、(、)、~、`、>、#、+、-、=、|、{、}、.、!)。或改用 HTML 格式更简单。
A:sendPhoto 会压缩图片。使用 sendDocument 发送可保持原始质量,但不会显示预览。
A:检查 Bot 的隐私模式(Privacy Mode)。通过 BotFather 的 /setprivacy 关闭后 Bot 才能接收群组所有消息。关闭后需重新加入群组。
A:已设置 Webhook,长轮询不可用。调用 deleteWebhook 删除后重试,或改用 Webhook 接收更新。
A:免费版不支持批量发送、群组管理(踢人/封禁/权限)、频道管理、Webhook 回调与审核功能。这些能力在专业版提供。
本免费版限制以下高级功能:
解锁全部功能请使用专业版:telegram-msg-toolkit-pro
api.telegram.org 的网络连接| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由 Agent 内置 LLM 提供 |
| curl | CLI 工具 | 必需 | 系统自带或包管理器安装 |
| Telegram Bot Token | 凭证 | 必需 | 通过 BotFather 创建 Bot 获取 |
| jq | CLI 工具 | 推荐 | 用于 JSON 响应解析 |
TELEGRAM_BOT_TOKEN 中/newbot → 按提示操作 → 获取 HTTP API token/revokenewtoken 重置| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |