Прежде чем задать этот вопрос, я проверил здесь. Я хочу убить все остальные сеансы, кроме сеанса, с которым я сейчас подключаюсь. Основываясь на all_sessions = client(GetAuthorizationsRequest()).to_dict()
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 id
упомянутый в ссылке выше (документы API телемарафона). Я попробовал с ними команды:
client(DestroySessionRequest(api_id))
client(DestroySessionRequest(hash))
Но не только сеансы удаляются, но и нет ответа от apis и команд, ожидающих и ожидающих ответа без ошибок или без исключений. Как я могу убить сеанс?
Чтобы убить другие сеансы, вам нужно использовать функцию 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
Чтобы удалить текущий сеанс, вы:
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
для хранения сведений о сеансе каждый раз, когда используется новое имя пользователя. Имя файла начинается с переменной имени пользователя (например, my_username.session
). Файлы сеансов хранятся в файловой системе постоянно, поэтому иногда можно увидеть несколько доступных сеансов. Вы можете вручную удалить файлы сеанса, которые вам не нужны, и связанный сеанс больше не будет доступен. Более подробную информацию о сеансах Telethon можно найти в документации по Telethon API.