OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  telegram-create-bot:直接通过 Telegram 官方接口构建并管理机器人机器人

telegram-create-bot:直接通过 Telegram 官方接口构建并管理机器人机器人

 
  patch ·  2026-02-27 23:36:24 · 2 次点击  · 0 条评论  

名称: telegram-create-bot
描述: 通过 Telegram Bot API 构建和管理机器人。创建机器人、发送消息、处理 Webhook、管理群组和频道。
主页: https://core.telegram.org/bots/api
元数据: {"clawdbot":{"emoji":"🤖","requires":{"bins":["jq","curl"],"env":["TELEGRAM_BOT_TOKEN"]}}}


Telegram 机器人创建与管理

直接在 OpenClaw 中构建和管理 Telegram 机器人。

初始设置

  1. 打开 Telegram,向 @BotFather 发送消息。
  2. 发送 /newbot 并按提示创建你的机器人。
  3. 复制机器人令牌(格式类似 123456789:ABCdefGHIjklMNOpqrsTUVwxyz)。
  4. 设置环境变量:
    bash export TELEGRAM_BOT_TOKEN="你的机器人令牌"

API 基础 URL

所有请求均发送至以下地址:

https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/方法名称

使用指南

机器人信息

获取机器人信息

curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getMe" | jq

获取机器人命令列表

curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getMyCommands" | jq

设置机器人命令

curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/setMyCommands" \
  -H "Content-Type: application/json" \
  -d '{
    "commands": [
      {"command": "start", "description": "启动机器人"},
      {"command": "help", "description": "显示帮助信息"},
      {"command": "settings", "description": "机器人设置"}
    ]
  }' | jq

发送消息

发送文本消息

curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": "聊天ID",
    "text": "来自 Clawdbot 的问候!",
    "parse_mode": "HTML"
  }' | jq

发送带内联键盘的消息

curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": "聊天ID",
    "text": "请选择一个选项:",
    "reply_markup": {
      "inline_keyboard": [
        [{"text": "选项一", "callback_data": "opt1"}, {"text": "选项二", "callback_data": "opt2"}],
        [{"text": "访问网站", "url": "https://example.com"}]
      ]
    }
  }' | jq

发送带回复键盘的消息

curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": "聊天ID",
    "text": "请从键盘中选择:",
    "reply_markup": {
      "keyboard": [
        [{"text": "按钮一"}, {"text": "按钮二"}],
        [{"text": "发送位置", "request_location": true}]
      ],
      "resize_keyboard": true,
      "one_time_keyboard": true
    }
  }' | jq

发送图片(本地文件)

curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendPhoto" \
  -F "chat_id=聊天ID" \
  -F "photo=@/图片/路径/image.jpg" \
  -F "caption=图片说明" | jq

发送图片(通过 URL)

curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendPhoto" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": "聊天ID",
    "photo": "https://example.com/image.jpg",
    "caption": "来自 URL 的图片"
  }' | jq

发送文档

curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendDocument" \
  -F "chat_id=聊天ID" \
  -F "document=@/文件/路径/file.pdf" \
  -F "caption=这是您的文档" | jq

发送位置

curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendLocation" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": "聊天ID",
    "latitude": 40.7128,
    "longitude": -74.0060
  }' | jq

获取更新

获取更新(轮询)

curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getUpdates" | jq

使用偏移量获取更新(标记为已读)

curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getUpdates?offset=更新ID" | jq

使用超时获取更新(长轮询)

curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getUpdates?timeout=30" | jq

Webhook 管理

设置 Webhook

curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/setWebhook" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://你的服务器.com/webhook",
    "allowed_updates": ["message", "callback_query"]
  }' | jq

获取 Webhook 信息

curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getWebhookInfo" | jq

删除 Webhook

curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/deleteWebhook" | jq

聊天管理

获取聊天信息

curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getChat?chat_id=聊天ID" | jq

获取聊天成员数量

curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getChatMemberCount?chat_id=聊天ID" | jq

获取聊天管理员列表

curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getChatAdministrators?chat_id=聊天ID" | jq

将用户移出聊天

curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/banChatMember" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": "聊天ID",
    "user_id": 用户ID
  }' | jq

解除用户封禁

curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/unbanChatMember" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": "聊天ID",
    "user_id": 用户ID,
    "only_if_banned": true
  }' | jq

消息管理

编辑消息文本

curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/editMessageText" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": "聊天ID",
    "message_id": 消息ID,
    "text": "更新后的消息文本"
  }' | jq

删除消息

curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/deleteMessage" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": "聊天ID",
    "message_id": 消息ID
  }' | jq

置顶消息

curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/pinChatMessage" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": "聊天ID",
    "message_id": 消息ID
  }' | jq

转发消息

curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/forwardMessage" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": "目标聊天ID",
    "from_chat_id": "来源聊天ID",
    "message_id": 消息ID
  }' | jq

回调查询

应答回调查询

curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/answerCallbackQuery" \
  -H "Content-Type: application/json" \
  -d '{
    "callback_query_id": "回调查询ID",
    "text": "按钮已点击!",
    "show_alert": false
  }' | jq

重要说明

  • 聊天 ID:可以是正数(用户)或负数(群组/频道)。可从更新中获取,或使用 @userinfobot 查询。
  • 解析模式:支持 HTMLMarkdownMarkdownV2
  • 速率限制:约每秒 30 条消息到不同聊天,每秒 1 条消息到同一聊天。
  • 文件限制:图片最大 10MB,文档最大 50MB。
  • 机器人权限:机器人不能主动向用户发送消息,用户必须先使用 /start 命令。

HTML 格式支持

<b>粗体</b>
<i>斜体</i>
<u>下划线</u>
<s>删除线</s>
<code>行内代码</code>
<pre>代码块</pre>
<a href="https://example.com">链接</a>
<tg-spoiler>剧透</tg-spoiler>

示例

简易回声机器人(Bash 脚本)

#!/bin/bash
OFFSET=0
while true; do
  UPDATES=$(curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getUpdates?offset=$OFFSET&timeout=30")

  for UPDATE in $(echo "$UPDATES" | jq -c '.result[]'); do
    UPDATE_ID=$(echo "$UPDATE" | jq '.update_id')
    CHAT_ID=$(echo "$UPDATE" | jq '.message.chat.id')
    TEXT=$(echo "$UPDATE" | jq -r '.message.text')

    if [ "$TEXT" != "null" ]; then
      curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
        -H "Content-Type: application/json" \
        -d "{\"chat_id\": $CHAT_ID, \"text\": \"您说:$TEXT\"}"
    fi

    OFFSET=$((UPDATE_ID + 1))
  done
done

获取您的聊天 ID

# 1. 向您的机器人发送一条消息
# 2. 运行以下命令查看您的聊天 ID:
curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getUpdates" | jq '.result[-1].message.chat.id'

向频道发送消息

# 使用 @频道名 或频道 ID(以 -100 开头)
curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": "@你的频道名",
    "text": "频道公告!"
  }' | jq

实用资源

2 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor