[2ff88f42] 1. Analyse der Änderungen:
1. Analyse der Änderungen:
* superoffice_client.py: Implementierung der Methoden create_contact (Standardfelder) und create_person (inkl. Firmenverknüpfung).
* auth_handler.py: Härtung der Authentifizierung durch Priorisierung von SO_CLIENT_ID und Unterstützung für load_dotenv(override=True).
* main.py: Erweiterung des Test-Workflows für den vollständigen Lese- und Schreib-Durchstich (Erstellung von Demo-Firmen und Personen).
* README.md: Aktualisierung des Status Quo und der verfügbaren Client-Methoden.
This commit is contained in:
44
connector-superoffice/debug_auth_manual.py
Normal file
44
connector-superoffice/debug_auth_manual.py
Normal file
@@ -0,0 +1,44 @@
|
||||
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}")
|
||||
Reference in New Issue
Block a user