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

如何使用Pyrogram或其他Python库获取归档聊天列表?

获取归档聊天列表的Python实现方案

Pyrogram 现状

目前Pyrogram的公开API确实没有直接封装获取归档聊天列表的功能,Telegram的MTProto层中归档逻辑关联folders相关TL对象,但Pyrogram暂未提供对应高层接口。如果一定要用Pyrogram实现,需要手动调用底层MTProto函数处理TL类型,过程较为繁琐,要求开发者对Telegram的MTProto协议有一定了解。

替代方案:使用Telethon

Telethon对归档聊天的支持更完善,它封装了获取对话过滤器(即文件夹)和对应对话的方法,能直接实现需求。

步骤1:安装Telethon

pip install telethon

步骤2:实现代码示例

from telethon import TelegramClient
from telethon.tl.functions.messages import GetDialogFiltersRequest

# 替换为你的API信息
API_ID = 123456
API_HASH = "your_api_hash_here"
SESSION_NAME = "archive_session"

async def fetch_archived_chats():
    async with TelegramClient(SESSION_NAME, API_ID, API_HASH) as client:
        # 获取所有对话文件夹过滤器
        filters = await client(GetDialogFiltersRequest())
        # 定位归档文件夹:默认id为1,或通过标题判断(注意多语言环境标题可能不同)
        archive_filter = next(f for f in filters if f.id == 1)
        
        # 获取归档文件夹下的所有对话
        archived_dialogs = await client.get_dialogs(filter=archive_filter)
        
        # 输出结果示例
        print("归档聊天列表:")
        for dialog in archived_dialogs:
            print(f"标题: {dialog.title} | ID: {dialog.id}")

if __name__ == "__main__":
    import asyncio
    asyncio.run(fetch_archived_chats())

注意事项

  • API_ID和API_HASH需要通过Telegram官方开发者渠道申请
  • 默认归档文件夹的id为1,若你自定义过文件夹,可通过f.title匹配(比如英文是"Archive",中文是"归档")
  • 首次运行客户端会要求验证手机号,完成验证后会生成会话文件,后续运行无需重复验证

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 17:37:08