如何将单个 Telethon 会话用于多个脚本?

问题描述 投票:0回答:1

我有一个 JSON 格式的 Telethon 会话。我可以在一个脚本中使用它,没有任何问题,在第二个脚本中,如果我尝试同时使用它,Telethon 将输出

数据库已锁定

我尝试通过复制会话来解决此问题,直接复制时,两个脚本都会运行,但问题是,如果我尝试禁用其中一个

client.disconnect()
会话,第二个会话也将断开连接

这对我来说是一个问题,因为第一个会话做了一个简单的一次性工作,所以它必须启动和关闭。第二个会话处理传入消息,即事件处理程序已连接

第一个脚本完成后,事件处理程序只是停止响应,没有任何错误。

我该怎么办?如何将一个会话用于多个脚本?也许我只是复制了一些错误的东西?

我尝试复制会话,它与第一个会话一起关闭

python-3.x session telegram telethon telegram-api
1个回答
0
投票

您可以尝试使用 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),所以要小心。

© www.soinside.com 2019 - 2024. All rights reserved.