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

使用Telethon v1获取Telegram特定群组主题的前10条消息

解决Telethon获取特定论坛主题消息的问题

在Telethon 1.30.3中,直接通过主题链接调用get_entity无法正确识别论坛主题,需要拆分频道实体和主题ID来获取消息,具体步骤如下:

  • 第一步:获取目标频道的实体,可以通过频道用户名或不带主题ID的频道链接调用get_entity
  • 第二步:提取论坛主题ID,即你提供的链接末尾的数字(比如https://t.me/ddostup/1118里的1118)
  • 第三步:使用get_messages方法,通过reply_to参数指定主题ID,同时设置limit=10获取前10条消息

完整代码示例:

from telethon import TelegramClient

# 替换为你的API信息
client = TelegramClient('my_session', api_id=你的API_ID, api_hash='你的API_HASH')

async def fetch_topic_top_messages():
    await client.start()
    # 获取频道实体
    channel = await client.get_entity('ddostup')
    # 目标论坛主题ID
    topic_id = 1118
    # 获取该主题的前10条消息
    messages = await client.get_messages(channel, limit=10, reply_to=topic_id)
    # 遍历输出消息内容
    for idx, msg in enumerate(messages, 1):
        print(f"第{idx}条消息:{msg.text}")

with client:
    client.loop.run_until_complete(fetch_topic_top_messages())

补充说明:

  • 论坛主题的消息在Telegram后台逻辑中属于"回复到主题顶层消息",因此reply_to参数传入主题ID即可筛选出该主题下的所有消息
  • 如果需要获取更早的消息,可以结合offset_id参数进行分页
  • 确保你的Telethon客户端已经通过认证,有权限访问目标频道

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 00:38:15