如何用Pyrogram检查Telegram频道评论?遇GetGroupsForDiscussion传参问题
解决Pyrogram检查Telegram频道评论的正确方法
首先明确:你误解了get_groups_for_discussion方法的作用——它不需要参数,也不能用来直接查询单个频道的讨论组。这个方法的功能是返回当前登录账号已加入的所有讨论组(即关联频道的评论区),所以传参数调用必然触发错误,这是符合设计逻辑的。
正确实现步骤
要检查指定频道的评论数量,需通过以下流程:
- 获取目标频道的Chat对象,提取其关联的讨论组ID(
linked_chat_id字段) - 通过该ID获取讨论组的Chat对象
- 统计讨论组内的消息总数(即评论数量)
代码示例
from pyrogram import Client # 初始化客户端(需填入你的API信息) app = Client( "my_session", api_id=123456, api_hash="your_api_hash" ) async def count_channel_comments(channel_username): # 获取频道信息 channel = await app.get_chat(channel_username) # 检查是否有关联讨论组 if not channel.linked_chat_id: print("该频道未设置关联讨论组,无法统计评论") return # 获取讨论组信息并统计消息数 discussion_chat = await app.get_chat(channel.linked_chat_id) comment_count = await app.get_chat_history_count(discussion_chat.id) print(f"频道@{channel_username}的评论总数:{comment_count}") # 运行客户端执行任务 with app: app.run(count_channel_comments("target_channel_username"))
关键说明
get_groups_for_discussion仅用于批量拉取当前账号加入的讨论组列表,无参数需求,也不支持指定单个频道linked_chat_id是频道Chat对象的核心字段,只有当频道开启了评论功能(关联了讨论组)时才会有值- 使用
get_chat_history_count统计消息数时,需确保你的账号有权限访问该讨论组(公开讨论组无需加入,私有讨论组需先加入)
内容的提问来源于stack exchange,提问作者dontHacker1234
相关产品推荐
相关产品推荐

