You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python3及pyTelegramBotAPI获取Telegram超级群组全部话题

使用pyTelegramBotAPI获取Telegram群组所有话题的方法

pyTelegramBotAPI的高层方法里没有直接封装“获取所有话题列表”的功能,但可以通过调用Telegram官方Bot API的getForumTopics接口来实现——因为pyTelegramBotAPI本质是对官方API的封装,我们可以用其底层的API请求能力来调用这个接口。

操作步骤

  1. 确认Bot权限
    你的Bot必须是目标群组的管理员,且拥有manage_topics(管理话题)权限,否则无法调用该接口。

  2. 编写代码调用接口
    以下是完整示例代码:

    import telebot
    
    # 替换成你的Bot Token
    BOT_TOKEN = "你的BotToken"
    # 替换成目标群组的ID(注意要带-前缀,比如-123456789)
    GROUP_ID = -123456789
    
    bot = telebot.TeleBot(BOT_TOKEN)
    
    def get_all_forum_topics(chat_id):
        # 调用Telegram官方API的getForumTopics接口
        response = bot.get_api().request(
            "getForumTopics",
            {"chat_id": chat_id}
        )
        # 返回所有话题列表
        return response.get("topics", [])
    
    # 执行并打印结果
    topics = get_all_forum_topics(GROUP_ID)
    for topic in topics:
        print(f"话题ID: {topic['message_thread_id']}, 话题名称: {topic['name']}, 创建时间: {topic['date']}")
    
  3. 解析返回结果
    调用getForumTopics返回的topics数组中,每个元素对应一个话题,包含以下关键字段(对应pyTelegramBotAPI的ForumTopic类型):

    • message_thread_id: 话题ID(即你创建话题时拿到的ID)
    • name: 话题名称
    • date: 话题创建的Unix时间戳
    • icon_color: 话题图标的颜色代码
    • icon_custom_emoji_id: 自定义话题图标的emoji ID(如果设置了的话)

ForumTopic类型说明(翻译自官方文档)

telebot.types.ForumTopic
该类型代表论坛中的一个话题。
属性:

  • message_thread_id: int - 话题的唯一标识符
  • name: str - 话题名称
  • icon_color: int - 话题图标的颜色,可选值为:0x6FB9F0, 0xFFD67E, 0xCB86DB, 0x8EEE98, 0xFF93B2
  • icon_custom_emoji_id: str - 自定义话题图标的唯一emoji标识符(可选)

内容的提问来源于stack exchange,提问作者ars_best

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 16:12:43