使用Python Telethon获取Telegram群组管理员返回空结果问题求助
解决Telethon获取Telegram群组管理员返回空结果的问题
你遇到的情况很清晰——返回结果里count=1说明频道确实有1个管理员,但participants和users数组为空,核心问题出在offset参数的设置上。
问题根源
你代码里写了offset=42,这表示你要从第43个参与者的位置开始获取数据,但结果显示管理员总数只有1个。从offset=42的位置自然拿不到任何内容,因为这个位置根本不存在参与者。
修正后的代码
把offset改成0(从第一个参与者开始获取),同时可以简化hash参数(Telethon通常会自动处理hash值,不需要硬设为0):
client.connect() if not client.is_user_authorized(): client.send_code_request(phone) client.sign_in(phone, input('Enter the code: ')) result = client(functions.channels.GetParticipantsRequest( channel='mychannel', filter=types.ChannelParticipantsAdmins(), offset=0, # 从第一个管理员开始获取 limit=100, hash=0 # 也可以省略该参数,让Telethon自动生成 )) print(result.stringify())
额外提醒
- 如果你的
mychannel是普通群组(非超级群/频道),可能需要改用functions.messages.GetParticipantsRequest,因为channels.*系列接口仅适用于超级群和频道类型。 - 确保你的账号有权限查看该群组的管理员信息,部分私密群组会限制非管理员查看管理员列表。
内容的提问来源于stack exchange,提问作者user16788304




