packages = ["tweepy", "ssl"]
import shutil
from pathlib import Path
try:
terminal_size = shutil.get_terminal_size().columns
except OSError:
terminal_size = 80
# 保存した Cookie を使って認証
## 毎回ログインすると不審なログインとして扱われる可能性が高くなるため、
## できるだけ以前認証した際に保存した Cookie を使って認証することを推奨
if Path('cookie.json').exists():
# 保存した Cookie を読み込む
with open('cookie.json', 'r') as f:
cookies_dict = json.load(f)
# RequestCookieJar オブジェクトに変換
cookies = RequestsCookieJar()
for key, value in cookies_dict.items():
cookies.set(key, value)
# 読み込んだ RequestCookieJar オブジェクトを CookieSessionUserHandler に渡す
auth_handler = CookieSessionUserHandler(cookies=cookies)
# スクリーンネームとパスワードを指定して認証
else:
# スクリーンネームとパスワードを渡す
## スクリーンネームとパスワードを指定する場合は初期化時に認証のための API リクエストが多数行われるため、完了まで数秒かかる
try:
auth_handler = CookieSessionUserHandler(screen_name='@2eULg9cHcZXQvZ9', password='Lciel1964')
except tweepy.HTTPException as ex:
# パスワードが間違っているなどの理由で認証に失敗した場合
if len(ex.api_codes) > 0 and len(ex.api_messages) > 0:
error_message = f'Code: {ex.api_codes[0]}, Message: {ex.api_messages[0]}'
else:
error_message = 'Unknown Error'
raise Exception(f'Failed to authenticate with password ({error_message})')