我有一个 JSON 格式的 Telethon 会话。我可以在一个脚本中使用它,没有任何问题,在第二个脚本中,如果我尝试同时使用它,Telethon 将输出
数据库已锁定
我尝试通过复制会话来解决此问题,直接复制时,两个脚本都会运行,但问题是,如果我尝试禁用其中一个
client.disconnect()
会话,第二个会话也将断开连接
这对我来说是一个问题,因为第一个会话做了一个简单的一次性工作,所以它必须启动和关闭。第二个会话处理传入消息,即事件处理程序已连接
第一个脚本完成后,事件处理程序只是停止响应,没有任何错误。
我该怎么办?如何将一个会话用于多个脚本?也许我只是复制了一些错误的东西?
我尝试复制会话,它与第一个会话一起关闭
您可以尝试使用 StringSession 来避免使用 telethon 会话数据库。获取会话字符串后,您可以执行以下操作:
async with TelegramClient(StringSession('<your_session>'), api_id, api_hash) as client:
await execute_some_script(client)
我设法使用具有相同会话字符串的两个不同的 Telethon 客户端同时获取对话框列表。
如果不起作用,则无法在 Telethon(或根本在 Telegram 中)使用相同的会话。 Telethon 文档声称,如果同时从不同的 IP 使用电报,则会话会失效(请参阅 AuthKeyDuplicatedError),所以要小心。