from xdk.auth import OAuth2PKCE
from urllib.parse import urlparse
import webbrowser
# ステップ1: PKCEインスタンスを作成
auth = OAuth2PKCE(
client_id="your_client_id",
redirect_uri="http://localhost:8080/callback",
scopes=["tweet.read", "users.read", "offline.access"] # 必要に応じてスコープを調整
)
# ステップ2: 認可URLを取得
auth_url = auth.get_authorization_url()
print(f"認可するには以下のURLにアクセスしてください: {auth_url}")
webbrowser.open(auth_url)
# ステップ3: コールバックを処理(実際のアプリではFlaskなどのWebフレームワークを使用)
# callback_url = "http://localhost:8080/callback?code=AUTH_CODE_HERE" と仮定
callback_url = input("コールバックURLの全体をここに貼り付けてください: ")
parsed = urlparse(callback_url)
code = parsed.query.split("=")[1]
# ステップ4: 認可コードをトークンと交換
tokens = auth.fetch_token(authorization_code=code)
access_token = tokens["access_token"]
refresh_token = tokens["refresh_token"] # 更新用に保存
# ステップ5: クライアントを作成
client = Client(oauth2_access_token=access_token)