Telegram Bot 构建技能
直接从 Clawdbot 构建和管理 Telegram 机器人。
设置
- 1. 打开 Telegram 并向 @BotFather 发送消息
- 发送 /newbot 并按照提示创建你的机器人
- 复制机器人令牌(格式如 123456789:ABCdefGHIjklMNOpqrsTUVwxyz)
- 设置环境变量:
bash
export TELEGRAM
BOTTOKEN=你的机器人令牌
API 基础地址
所有请求发送至:
https://api.telegram.org/bot$TELEGRAMBOTTOKEN/METHOD_NAME
使用方法
机器人信息
获取机器人信息
bash
curl -s https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/getMe | jq
获取机器人命令
bash
curl -s https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/getMyCommands | jq
设置机器人命令
bash
curl -s -X POST https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/setMyCommands \
-H Content-Type: application/json \
-d {
commands: [
{command: start, description: 启动机器人},
{command: help, description: 显示帮助信息},
{command: settings, description: 机器人设置}
]
} | jq
发送消息
发送文本消息
bash
curl -s -X POST https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/sendMessage \
-H Content-Type: application/json \
-d {
chat
id: CHATID,
text: 来自 Clawdbot 的问候!,
parse_mode: HTML
} | jq
发送带内联键盘的消息
bash
curl -s -X POST https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/sendMessage \
-H Content-Type: application/json \
-d {
chat
id: CHATID,
text: 请选择一个选项:,
reply_markup: {
inline_keyboard: [
[{text: 选项 1, callback
data: opt1}, {text: 选项 2, callbackdata: opt2}],
[{text: 访问网站, url: https://example.com}]
]
}
} | jq
发送带回复键盘的消息
bash
curl -s -X POST https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/sendMessage \
-H Content-Type: application/json \
-d {
chat
id: CHATID,
text: 请从键盘选择:,
reply_markup: {
keyboard: [
[{text: 按钮 1}, {text: 按钮 2}],
[{text: 发送位置, request_location: true}]
],
resize_keyboard: true,
one
timekeyboard: true
}
} | jq
发送图片
bash
curl -s -X POST https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/sendPhoto \
-F chat
id=CHATID \
-F photo=@/path/to/image.jpg \
-F caption=图片说明 | jq
通过 URL 发送图片
bash
curl -s -X POST https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/sendPhoto \
-H Content-Type: application/json \
-d {
chat
id: CHATID,
photo: https://example.com/image.jpg,
caption: 来自 URL 的图片
} | jq
发送文档
bash
curl -s -X POST https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/sendDocument \
-F chat
id=CHATID \
-F document=@/path/to/file.pdf \
-F caption=这是你的文档 | jq
发送位置
bash
curl -s -X POST https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/sendLocation \
-H Content-Type: application/json \
-d {
chat
id: CHATID,
latitude: 40.7128,
longitude: -74.0060
} | jq
获取更新
获取更新(轮询)
bash
curl -s https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/getUpdates | jq
带偏移量获取更新(标记为已读)
bash
curl -s https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/getUpdates?offset=UPDATE_ID | jq
带超时获取更新(长轮询)
bash
curl -s https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/getUpdates?timeout=30 | jq
Webhooks
设置 Webhook
bash
curl -s -X POST https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/setWebhook \
-H Content-Type: application/json \
-d {
url: https://your-server.com/webhook,
allowed
updates: [message, callbackquery]
} | jq
获取 Webhook 信息
bash
curl -s https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/getWebhookInfo | jq
删除 Webhook
bash
curl -s -X POST https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/deleteWebhook | jq
聊天管理
获取聊天信息
bash
curl -s https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/getChat?chat
id=CHATID | jq
获取聊天成员数量
bash
curl -s https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/getChatMemberCount?chat
id=CHATID | jq
获取聊天管理员
bash
curl -s https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/getChatAdministrators?chat
id=CHATID | jq
封禁聊天用户
bash
curl -s -X POST https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/banChatMember \
-H Content-Type: application/json \
-d {
chat
id: CHATID,
user
id: USERID
} | jq
解封用户
bash
curl -s -X POST https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/unbanChatMember \
-H Content-Type: application/json \
-d {
chat
id: CHATID,
user
id: USERID,
only
ifbanned: true
} | jq
消息管理
编辑消息文本
bash
curl -s -X POST https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/editMessageText \
-H Content-Type: application/json \
-d {
chat
id: CHATID,
message
id: MESSAGEID,
text: 更新后的消息文本
} | jq
删除消息
bash
curl -s -X POST https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/deleteMessage \
-H Content-Type: application/json \
-d {
chat
id: CHATID,
message
id: MESSAGEID
} | jq
置顶消息
bash
curl -s -X POST https://api.telegram.org/bot$TELEGRAM
BOTTOKEN/pinChatMessage \
-H Content-Type: application/json \
-d {
chat
id: CHATID,
message
id: MESSAGEID
} | jq
转发消息
bash
curl -s -X POST https://api.