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

使用Telethon读取特定Telegram群组消息遇问题求助

问题解决与参数说明

无输出的常见原因及修复

  1. API信息错误:你写的api_id和api_hash是占位符,必须替换成从Telegram官方获取的真实值。注意api_id是整数类型,不要加引号。
  2. 对话选择错误:'me'代表你自己的私人对话,如果该对话没有消息自然无输出。要获取特定群组消息,需替换成群组的username(带@前缀,如'@my_test_group')、群组ID(整数)或邀请链接。
  3. 未完成登录:第一次运行代码时,Telethon会提示你输入手机号和验证码完成登录,若未完成登录流程,客户端无法正常获取消息。
  4. 消息数量限制:iter_messages默认只获取最近100条消息,如果目标对话的消息数不足或没有符合条件的消息,也会无输出。

TelegramClient参数说明

  • 第一个参数('name'):会话文件名,Telethon会用这个文件保存你的登录状态,下次运行无需重复登录。
  • api_id:从Telegram开发者平台获取的整数ID,必须真实有效。
  • api_hash:从Telegram开发者平台获取的字符串哈希值,与api_id一一对应。
  • 可选参数phone:指定登录的手机号,多账号登录时可使用。

iter_messages参数说明

  • 第一个参数(entity):目标对话标识,支持以下类型:
    • 字符串:群组/频道的username(带@)、邀请链接、自己或联系人的手机号
    • 整数:对话的ID(可通过客户端获取)
    • 实体对象:通过client.get_entity()获取的对话对象
  • limit:获取消息的最大数量,默认100,设为None可获取所有消息(不建议,速度极慢)
  • reverse:布尔值,设为True时按消息发送时间正序返回(默认是倒序,最新消息先返回)
  • offset_id:从指定消息ID之后开始获取消息,用于分页加载历史消息

修正后的示例代码

from telethon.sync import TelegramClient

# 替换成你自己的API信息
api_id = 123456  # 注意是整数,不要加引号
api_hash = 'your_real_api_hash_here'
target_group = '@your_group_username'  # 替换成目标群组的username

with TelegramClient('my_session', api_id, api_hash) as client:
    # 获取目标群组最近200条消息,按正序输出
    for message in client.iter_messages(target_group, limit=200, reverse=True):
        # 处理无文本的消息(如图片、视频)
        text = message.text if message.text else '[无文本内容]'
        print(f"{message.sender_id}: {text}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 18:02:41