使用Telethon导出聊天列表邀请链接时遇FilterNotSupportedError错误求助
问题原因
FilterNotSupportedError 是因为你使用的是普通自定义对话框过滤器(InputChatlistDialogFilter关联的filter_id),这类过滤器不支持导出邀请链接。Telegram API仅允许导出**专门创建的公开聊天列表(即公开文件夹)**的邀请,普通的对话框过滤器(比如手动在客户端创建的分类文件夹)不在支持范围内。
解决办法
你需要先创建一个可导出的公开聊天列表,再基于它生成邀请链接,具体步骤如下:
1. 创建可导出的公开聊天列表
使用CreateChatlistRequest创建新的公开聊天列表,指定要包含的公开频道/聊天:
from telethon import functions, types # 定义要包含的公开会话(替换为实际的频道/聊天ID和access_hash) include_peers = [ types.InputPeerChannel(channel_id=123456, access_hash=0123456789), types.InputPeerChat(chat_id=789012) ] # 创建可公开导出的聊天列表 create_result = client(functions.chatlists.CreateChatlistRequest( title='My Public Folder', peers=include_peers, exported=True # 必须设置为True,标记为可公开导出的列表 )) # 获取新创建的聊天列表ID,用于后续导出邀请 chatlist_id = create_result.chatlist.id
2. 导出该聊天列表的邀请链接
使用刚刚创建的聊天列表ID,调用ExportChatlistInviteRequest:
invite_result = client(functions.chatlists.ExportChatlistInviteRequest( chatlist=types.InputChatlistDialogFilter(filter_id=chatlist_id), title='My Folder Invite', peers=include_peers # 若创建聊天列表时已指定,此处可省略 )) print(invite_result.stringify())
关键注意点
- 普通自定义过滤器(客户端手动创建的文件夹)无法导出邀请,必须通过
CreateChatlistRequest并设置exported=True来创建专门的可导出聊天列表。 - 确保
include_peers中的会话都是公开可访问的(公开频道/公开聊天),私有会话无法生成公开邀请链接。 - 创建聊天列表后,你也可以在Telegram客户端中看到这个“公开文件夹”,后续维护可通过API或客户端操作。
内容的提问来源于stack exchange,提问作者Golol Rossol
相关产品推荐
相关产品推荐

