import requests import json from getpass import getpass def debug_search_databases(): print("--- Notion Datenbank Such-Debugger ---") token = getpass("Bitte gib deinen Notion API Key ein (Eingabe wird nicht angezeigt): ") if not token: print("\nFehler: Kein Token eingegeben. Abbruch.") return print("\n... Sende Suchanfrage an Notion für alle Datenbanken...") url = "https://api.notion.com/v1/search" headers = { "Authorization": f"Bearer {token}", "Content-Type": "application/json", "Notion-Version": "2022-06-28" } payload = { "filter": { "value": "database", "property": "object" }, "sort": { "direction": "ascending", "timestamp": "last_edited_time" } } try: response = requests.post(url, headers=headers, json=payload) response.raise_for_status() # Hebt HTTPError für 4xx/5xx Statuscodes hervor results = response.json().get("results", []) if not results: print("\nKeine Datenbanken gefunden, auf die die Integration Zugriff hat.") print("Bitte stelle sicher, dass die Integration auf Top-Level-Seiten geteilt ist.") return print(f"\nGefundene Datenbanken ({len(results)} insgesamt):") print("--------------------------------------------------") for db in results: db_id = db["id"] db_title_parts = db.get("title", []) db_title = db_title_parts[0].get("plain_text", "(Unbenannt)") if db_title_parts else "(Unbenannt)" print(f"Titel: '{db_title}'\n ID: {db_id}\n") print("--------------------------------------------------") print("Bitte überprüfe die genauen Titel und IDs für 'Projects' und 'All Tasks'.") except requests.exceptions.RequestException as e: print(f"\n❌ FEHLER! Fehler bei der Suche nach Datenbanken: {e}") if hasattr(e, 'response') and e.response is not None: print(f"HTTP Status Code: {e.response.status_code}") try: print(f"Antwort des Servers: {json.dumps(e.response.json(), indent=2)}") except: print(f"Antwort des Servers: {e.response.text}") if __name__ == "__main__": debug_search_databases()