Python通过Telethon调用hideAllChatJoinRequests审批频道入群申请
Telethon调用未封装原生API实现批量审批入群申请实现方案
当你在Telethon官方文档中找不到对应原生API的高层封装方法时,可以直接通过Telethon的TL层自动生成的请求类调用任意Telegram原生接口,不需要等待官方封装高层便捷方法。
前置条件
- 你使用的Python3环境已经安装了稳定版Telethon库
- 你的账号对目标频道/群组拥有管理员权限,且具备审批入群申请的对应权限
- 你已经拿到了自己账号的
api_id和api_hash
实现代码
首先导入对应原生接口的请求类,所有原生接口对应的请求类都已经按照API分类放在telethon.tl.functions路径下:
from telethon import TelegramClient from telethon.tl.functions.messages import HideAllChatJoinRequestsRequest # 初始化客户端,替换成你自己的配置参数 client = TelegramClient( session='your_local_session_name', api_id=YOUR_OWN_API_ID, api_hash='YOUR_OWN_API_HASH' ) async def batch_process_join_request(target_chat, approve: bool = True, invite_link: str = None): """ 批量处理目标群组/频道的待入群申请 :param target_chat: 目标群组/频道,支持传数字ID、公开@用户名、已获取的Chat/Channel对象 :param approve: True为全部通过申请,False为全部驳回申请 :param invite_link: 可选,传入指定邀请链接则仅处理通过该链接提交的申请,留空处理全部待审申请 """ resp = await client(HideAllChatJoinRequestsRequest( peer=target_chat, approved=approve, link=invite_link )) return resp # 调用示例 if __name__ == '__main__': with client: # 替换成你要操作的频道/群组标识 process_result = client.loop.run_until_complete( batch_process_join_request(target_chat="@your_channel_username", approve=True) ) print("批量处理执行结果:", process_result)
参数说明
peer:对应原生接口的peer参数,传入你要操作的频道/群组的唯一标识即可approved:对应原生接口的approved参数,控制批量操作是通过还是驳回link:对应原生接口的link参数,用于筛选特定邀请链接来源的入群申请,不需要筛选可以传None
补充说明
Telethon的高层便捷方法(比如你之前用的get_dialogs)只是对高频场景做的二次封装,所有Telegram官方开放的原生MTProto接口,都已经通过TL schema自动生成了对应的请求类,调用方式和上面的示例完全一致,不需要单独找对应的高层封装方法。
如果需要先拉取待审批的申请列表再做精细化处理,也可以用同样的方式导入telethon.tl.functions.messages.GetChatJoinRequestsRequest调用对应接口。
内容的提问来源于stack exchange,提问作者Jeyzz
相关产品推荐
相关产品推荐

