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}")