3

この質問をする前に、ここをチェックしました。現在接続しているセッション以外のすべてのセッションを強制終了したいと考えています。私が使用した Telethon 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が、上記のリンク (telethon API docs) で言及されている内容がわかりません。これらをコマンドに試しました:

client(DestroySessionRequest(api_id))
client(DestroySessionRequest(hash))

しかし、セッションが削除されないだけでなく、API やコマンドからの応答もありません。コマンドはエラーや例外なしで応答を待っています。セッションを強制終了するにはどうすればよいですか?

4

3 に答える 3

0

現在のセッションを削除するには:

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 ドキュメントを参照してください。

于 2018-09-15T17:46:17.410 に答える