from xdk.auth import OAuth2PKCE
from urllib.parse import urlparse
import webbrowser
# Paso 1: Crear instancia de PKCE
auth = OAuth2PKCE(
client_id="your_client_id",
redirect_uri="http://localhost:8080/callback",
scopes=["tweet.read", "users.read", "offline.access"] # Ajusta los scopes según sea necesario
)
# Paso 2: Obtener la URL de autorización
auth_url = auth.get_authorization_url()
print(f"Visita esta URL para autorizar: {auth_url}")
webbrowser.open(auth_url)
# Paso 3: Gestionar el callback (en una aplicación real, usa un framework web como Flask)
# Asume que callback_url = "http://localhost:8080/callback?code=AUTH_CODE_HERE"
callback_url = input("Pega aquí la URL de callback completa: ")
parsed = urlparse(callback_url)
code = parsed.query.split("=")[1]
# Paso 4: Intercambiar el código por tokens
tokens = auth.fetch_token(authorization_code=code)
access_token = tokens["access_token"]
refresh_token = tokens["refresh_token"] # Almacenar para renovar
# Paso 5: Crear el cliente
client = Client(oauth2_access_token=access_token)