Files
Brancheneinstufung2/company-explorer/backend/scripts/notion_tools/check_notion_token.py
Floke d021b6b71c refactor: [30388f42] Strukturiere Root-Skripte thematisch neu
- Organisiert eine Vielzahl von Skripten aus dem Root-Verzeichnis in thematische Unterordner, um die Übersichtlichkeit zu verbessern und die Migration vorzubereiten.
- Verschiebt SuperOffice-bezogene Test- und Hilfsskripte in .
- Verschiebt Notion-bezogene Synchronisations- und Import-Skripte in .
- Archiviert eindeutig veraltete und ungenutzte Skripte in .
- Die zentralen Helfer  und  bleiben im Root, da sie von mehreren Tools als Abhängigkeit genutzt werden.
2026-03-06 10:16:08 +00:00

59 lines
2.2 KiB
Python

import requests
from getpass import getpass
# Interaktive und sichere Abfrage des Tokens
print("--- Notion API Token Gültigkeits-Check ---")
notion_token = getpass("Bitte gib deinen Notion API Key ein (Eingabe wird nicht angezeigt): ")
if not notion_token:
print("\nFehler: Kein Token eingegeben.")
exit()
# Der einfachste API-Endpunkt, um die Authentifizierung zu testen
url = "https://api.notion.com/v1/users/me"
headers = {
"Authorization": f"Bearer {notion_token}",
"Notion-Version": "2022-06-28"
}
print("\n... Sende Test-Anfrage an Notion...")
try:
# --- TEST 1: Grundlegende Authentifizierung ---
print("\n[TEST 1/2] Prüfe grundlegende Authentifizierung (/users/me)...")
user_response = requests.get("https://api.notion.com/v1/users/me", headers=headers)
user_response.raise_for_status()
print("✅ ERFOLG! Der API Token ist gültig.")
# --- TEST 2: Suche nach der 'Projects' Datenbank ---
print("\n[TEST 2/2] Versuche, die 'Projects'-Datenbank über die Suche zu finden (/search)...")
search_url = "https://api.notion.com/v1/search"
search_payload = {
"query": "Projects",
"filter": {"value": "database", "property": "object"}
}
search_response = requests.post(search_url, headers=headers, json=search_payload)
search_response.raise_for_status()
results = search_response.json().get("results", [])
if not results:
print("🟡 WARNUNG: Die Suche war erfolgreich, hat aber keine Datenbank namens 'Projects' gefunden.")
else:
print("✅✅✅ ERFOLG! Die Suche funktioniert und hat die 'Projects'-Datenbank gefunden.")
print("Gefundene Datenbanken:")
for db in results:
print(f"- ID: {db['id']}, Titel: {db.get('title', [{}])[0].get('plain_text', 'N/A')}")
except requests.exceptions.HTTPError as e:
print(f"\n❌ FEHLER! Einer der Tests ist fehlgeschlagen.")
print(f"URL: {e.request.url}")
print(f"HTTP Status Code: {e.response.status_code}")
print("Antwort von Notion:")
try:
print(e.response.json())
except:
print(e.response.text)
except requests.exceptions.RequestException as e:
print(f"\n❌ FEHLER! Ein Netzwerk- oder Verbindungsfehler ist aufgetreten: {e}")