import os
import requests
from dotenv import load_dotenv

# Lade Umgebungsvariablen, um ID und Refresh Token zu holen
load_dotenv(dotenv_path="../.env")

# Wir nutzen das Secret, das du mir gegeben hast, HARTCODIERT, um .env Fehler auszuschließen
HARDCODED_SECRET = "418c424681944ad4138788692dfd7ab2"

# ID und Refresh Token aus der .env (zur Kontrolle)
client_id = os.getenv("SO_CLIENT_ID") or os.getenv("SO_SOD")
refresh_token = os.getenv("SO_REFRESH_TOKEN")

print(f"--- DEBUG AUTHENTICATION ---")
print(f"Client ID (aus .env): {client_id}")
print(f"Refresh Token (aus .env): {refresh_token[:10]}...") 
print(f"Client Secret (hartcodiert): {HARDCODED_SECRET[:5]}...")

url = "https://sod.superoffice.com/login/common/oauth/tokens"

# Payload für den Request
payload = {
    "grant_type": "refresh_token",
    "client_id": client_id,
    "client_secret": HARDCODED_SECRET,
    "refresh_token": refresh_token,
    # Manche Server brauchen das hier auch beim Refresh:
    "redirect_uri": "https://devnet-tools.superoffice.com/openid/callback" 
}

print(f"\nSende Request an: {url}")
try:
    resp = requests.post(url, data=payload)
    print(f"Status Code: {resp.status_code}")
    
    if resp.status_code == 200:
        print("SUCCESS! Access Token erhalten.")
        print(resp.json())
    else:
        print("FAILURE.")
        print(resp.text)
except Exception as e:
    print(f"Exception: {e}")
