Telethon:它在哪里存储凭据?
Telethon: where does it store the credentials?
我正在使用Telethon连接到电报API,现在开发后我需要将项目api更改为主帐户。我想知道 telethon 将凭据存储在哪里,以便我可以删除它们并强制重新进行身份验证?
如果您传递 str
作为会话名称,它将在您 运行 脚本所在的同一目录中创建一个 str.session
文件。因此,如果您将传递给 TelegramClient
构造函数的字符串更改为不存在的字符串,它将无法登录。同样,重命名或删除该会话也可以摆脱该会话。您不应手动删除会话文件,而应调用 .log_out()
.
虽然与问题本身无关,但您也可以自由覆盖 Session
class 以添加自定义 .save()
和 .load()
功能。 This issue shows when the format was changed from Pickle to JSON, and this one suggested the ability to actually override the Session
class。例如:
from telethon.tl import Session
class MySession(Session):
pass # Override load and save as you wish here
请注意,目前正在从 Session
迁移到 JsonSession
,最终 JsonSession
将取代 Session
(从 v0.10.1
开始) ,尽管如果您覆盖保存和加载,这不会影响您。
我正在使用Telethon连接到电报API,现在开发后我需要将项目api更改为主帐户。我想知道 telethon 将凭据存储在哪里,以便我可以删除它们并强制重新进行身份验证?
如果您传递 str
作为会话名称,它将在您 运行 脚本所在的同一目录中创建一个 str.session
文件。因此,如果您将传递给 TelegramClient
构造函数的字符串更改为不存在的字符串,它将无法登录。同样,重命名或删除该会话也可以摆脱该会话。您不应手动删除会话文件,而应调用 .log_out()
.
虽然与问题本身无关,但您也可以自由覆盖 Session
class 以添加自定义 .save()
和 .load()
功能。 This issue shows when the format was changed from Pickle to JSON, and this one suggested the ability to actually override the Session
class。例如:
from telethon.tl import Session
class MySession(Session):
pass # Override load and save as you wish here
请注意,目前正在从 Session
迁移到 JsonSession
,最终 JsonSession
将取代 Session
(从 v0.10.1
开始) ,尽管如果您覆盖保存和加载,这不会影响您。