如何获取Telegram频道帖子评论?get_discussion_message调用异常
问题原因
get_discussion_message方法用于获取讨论区中指定ID的单条消息。如果传入的是主帖子的ID,它返回的自然是主帖子对象,而非帖子下的评论。你需要调用专门的方法来获取主帖子的评论列表。
修复方案
使用get_discussion_replies方法遍历主帖子下的所有评论,或者通过message.get_replies()异步方法获取评论集合。
修复后的代码示例
ch = -... app = Client( "my_account", api_id=..., api_hash="..." ) async def main(): await app.start() async for message in app.get_chat_history(ch): try: # 遍历当前帖子下的所有评论 async for reply_msg in app.get_discussion_replies(ch, message.id): print(f"评论内容:{reply_msg.text}") print(f"评论作者:{reply_msg.author.username if reply_msg.author else '匿名用户'}") print("---") except Exception as e: print(f"处理消息ID {message.id} 时出错:{str(e)}") await app.stop() app.run(main())
补充说明
- 若要获取单条特定评论,需确保传入
get_discussion_message的是评论的ID,而非主帖子ID。 get_discussion_replies会自动获取该帖子下的所有层级评论(包括评论的回复)。- 保留异常打印便于排查权限不足、帖子无评论等问题,不要直接忽略异常。
内容的提问来源于stack exchange,提问作者SarahKerrigan24601
相关产品推荐
相关产品推荐

