为什么Telethon调用get_entity(id)时报错缺失必填参数'entity'
错误原因
get_entity 是 TelegramClient 类的实例方法,必须通过已初始化完成的客户端实例调用,不能直接通过类名调用。你使用 TelegramClient.get_entity(secret.chat_id) 方式调用时,Python会将第一个传入的secret.chat_id识别为类实例参数,判定你缺少必填的查询目标entity参数,因此触发类型错误。
解决方案
将调用get_entity的对象替换为你已经初始化好的client实例即可,修改后可运行代码如下:
from telethon import TelegramClient import secret client = TelegramClient('opentfd_session', secret.api_id, secret.api_hash).start() chat_admin = client.get_entity(secret.chat_id)
如果采用异步编码模式,需要对异步方法添加await关键字,完整示例:
import asyncio from telethon import TelegramClient import secret async def main(): client = TelegramClient('opentfd_session', secret.api_id, secret.api_hash) await client.start() chat_admin = await client.get_entity(secret.chat_id) # 此处添加后续业务逻辑 await client.disconnect() asyncio.run(main())
内容的提问来源于stack exchange,提问作者krutmaster
相关产品推荐
相关产品推荐

