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)