使用 telethon 找到 session id 并杀死 session
Find session id with telethon and kill the session
在我问这个问题之前,我检查了 here。我想杀死除我现在连接的 session 之外的所有其他 session。基于电视节目 api 我使用了 all_sessions = client(GetAuthorizationsRequest()).to_dict()
并且我得到了这个结果:
{
'_': 'Authorization',
'api_id': ...,
'app_name': '...',
'app_version': '4.1.4',
'country': 'Unknown',
'date_active': ...,
'date_created': ...,
'device_model': 'SamsungSM-G920F',
'flags': 0,
'hash': ...,
'ip': '...',
'platform': 'Android',
'region': '',
'system_version': 'SDK 23'
}
我想杀死这个 session 但我不知道上面的链接中提到的 session id
是什么(telethon API 文档)。我尝试使用这些命令:
client(DestroySessionRequest(api_id))
client(DestroySessionRequest(hash))
但不仅没有 sessions 删除,而且 apis 也没有响应,等待和等待响应的命令没有错误或没有 exceptions.How 我可以杀死session?
要删除当前 session 你:
from telethon import TelegramClient
# start session
client = TelegramClient(username, api_id, api_hash).start()
# Now you can use all client methods listed below, like for example...
client.send_message('me', 'Hello to myself!')
# list all sessions
print(client.session.list_sessions())
# delete current session (current session is associated with `username` variable)
client.log_out()
Telethon 会在每次使用新用户名时自动创建一个 .session
文件来存储 session 详细信息。文件名以用户名变量开头(例如 my_username.session
)。 Session 文件永久存储在文件系统中,因此您有时可以看到多个可用的 session。您可以手动删除不需要的 session 文件,相关的 session 将不再可用。
有关 Telethon session 的更多信息,请参见 Telethon API documentation。
要终止其他会话,您需要使用ResetAuthorizationRequest
功能。
来自官方文档的示例:
from telethon.sync import TelegramClient
from telethon import functions, types
with TelegramClient(name, api_id, api_hash) as client:
result = client(functions.account.ResetAuthorizationRequest(hash=-12398745604826))
print(result)
https://lonamiwebs.github.io/Telethon/methods/account/reset_authorization.html#examples
试试这个
GetSessions = await client(functions.account.GetAuthorizationsRequest())
if len(GetSessions.authorizations)>1:
print("Another Session :\tYes")
for ss in GetSessions.authorizations:
SessionHash = ss.hash
SessionIp = ss.ip
if SessionHash>0:
result = await client(functions.account.ResetAuthorizationRequest(hash=SessionHash))
print("Session Killed :\t" + str(SessionIp))
else:
print("Another Session :\tNo")
在我问这个问题之前,我检查了 here。我想杀死除我现在连接的 session 之外的所有其他 session。基于电视节目 api 我使用了 all_sessions = client(GetAuthorizationsRequest()).to_dict()
并且我得到了这个结果:
{
'_': 'Authorization',
'api_id': ...,
'app_name': '...',
'app_version': '4.1.4',
'country': 'Unknown',
'date_active': ...,
'date_created': ...,
'device_model': 'SamsungSM-G920F',
'flags': 0,
'hash': ...,
'ip': '...',
'platform': 'Android',
'region': '',
'system_version': 'SDK 23'
}
我想杀死这个 session 但我不知道上面的链接中提到的 session id
是什么(telethon API 文档)。我尝试使用这些命令:
client(DestroySessionRequest(api_id))
client(DestroySessionRequest(hash))
但不仅没有 sessions 删除,而且 apis 也没有响应,等待和等待响应的命令没有错误或没有 exceptions.How 我可以杀死session?
要删除当前 session 你:
from telethon import TelegramClient
# start session
client = TelegramClient(username, api_id, api_hash).start()
# Now you can use all client methods listed below, like for example...
client.send_message('me', 'Hello to myself!')
# list all sessions
print(client.session.list_sessions())
# delete current session (current session is associated with `username` variable)
client.log_out()
Telethon 会在每次使用新用户名时自动创建一个 .session
文件来存储 session 详细信息。文件名以用户名变量开头(例如 my_username.session
)。 Session 文件永久存储在文件系统中,因此您有时可以看到多个可用的 session。您可以手动删除不需要的 session 文件,相关的 session 将不再可用。
有关 Telethon session 的更多信息,请参见 Telethon API documentation。
要终止其他会话,您需要使用ResetAuthorizationRequest
功能。
来自官方文档的示例:
from telethon.sync import TelegramClient
from telethon import functions, types
with TelegramClient(name, api_id, api_hash) as client:
result = client(functions.account.ResetAuthorizationRequest(hash=-12398745604826))
print(result)
https://lonamiwebs.github.io/Telethon/methods/account/reset_authorization.html#examples
试试这个
GetSessions = await client(functions.account.GetAuthorizationsRequest())
if len(GetSessions.authorizations)>1:
print("Another Session :\tYes")
for ss in GetSessions.authorizations:
SessionHash = ss.hash
SessionIp = ss.ip
if SessionHash>0:
result = await client(functions.account.ResetAuthorizationRequest(hash=SessionHash))
print("Session Killed :\t" + str(SessionIp))
else:
print("Another Session :\tNo")