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.
37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
import os
|
|
from dotenv import load_dotenv
|
|
import urllib.parse
|
|
|
|
def generate_url():
|
|
load_dotenv(dotenv_path="../.env")
|
|
|
|
client_id = os.getenv("SO_CLIENT_ID") or os.getenv("SO_SOD")
|
|
redirect_uri = "https://devnet-tools.superoffice.com/openid/callback" # Das muss im Portal so registriert sein
|
|
state = "12345"
|
|
|
|
if not client_id:
|
|
print("Fehler: Keine SO_CLIENT_ID in der .env gefunden!")
|
|
return
|
|
|
|
params = {
|
|
"client_id": client_id,
|
|
"redirect_uri": redirect_uri,
|
|
"response_type": "code",
|
|
"scope": "openid offline_access", # Wichtig für Refresh Token
|
|
"state": state
|
|
}
|
|
|
|
base_url = "https://sod.superoffice.com/login/common/oauth/authorize"
|
|
auth_url = f"{base_url}?{urllib.parse.urlencode(params)}"
|
|
|
|
print("\nBitte öffne diese URL im Browser:")
|
|
print("-" * 60)
|
|
print(auth_url)
|
|
print("-" * 60)
|
|
print("\nNach dem Login wirst du auf eine Seite weitergeleitet, die nicht lädt (localhost).")
|
|
print("Kopiere die URL aus der Adresszeile und gib mir den Wert nach '?code='.")
|
|
|
|
if __name__ == "__main__":
|
|
generate_url()
|
|
|