# test_connection.py import os import requests import json # --- Konfiguration --- # HINWEIS: Stelle sicher, dass diese Variablen als Secrets in deinen Hugging Face Space-Einstellungen hinterlegt sind. # Sie werden automatisch von der Umgebung geladen. try: # Saubere, konsistente Namen für die Umgebungsvariablen APPLICATION_ID = os.environ["APPLICATION_ID"] BOT_TOKEN = os.environ["BOT_TOKEN"] GUILD_ID = os.environ["GUILD_ID"] PUBLIC_KEY = os.environ["PUBLIC_KEY"] # Auch hier, für die Konsistenz! except KeyError as e: print(f"Fehler: Umgebungsvariable {e} nicht gefunden. Bitte als Secret hinzufügen.") exit() # --- API-Endpunkt --- # Der Endpunkt für die Registrierung von Guild-Befehlen url = f"https://discord.com/api/v10/applications/{APPLICATION_ID}/guilds/{GUILD_ID}/commands" # --- Befehls-Payload --- # Ein einfacher Slash-Befehl, um die Verbindung zu testen. # Diesen Befehl kannst du später entfernen oder in deine Hauptanwendung integrieren. commands = [ { "name": "testping", "description": "Prüft die Verbindung und antwortet mit Pong!", "type": 1 } ] # --- Anfrage-Header --- # Der Bot-Token ist für die Authentifizierung erforderlich. headers = { "Authorization": f"Bot {BOT_TOKEN}", "Content-Type": "application/json" } # --- Ausführung der API-Anfrage --- print("Versuche, den 'testping' Befehl zu registrieren...") print(f"Ziel-URL: {url}") try: response = requests.put(url, headers=headers, json=commands, timeout=10) response.raise_for_status() # Löst einen Fehler für schlechte HTTP-Statuscodes aus (4xx, 5xx) print("\n-----------------------------------") print("✅ ERFOLG! Verbindung hergestellt und Befehl registriert.") print("Discord-API-Antwort (Statuscode):", response.status_code) print("Antwort-Body:", json.dumps(response.json(), indent=2)) print("-----------------------------------") except requests.exceptions.ConnectionError as e: print("\n-----------------------------------") print("❌ FEHLER: Verbindung fehlgeschlagen.") print("Die Anwendung konnte keine Verbindung zu Discord.com herstellen.") print("Das ist derselbe Fehler wie zuvor, was auf ein Netzwerkproblem im Space hindeutet.") print("Fehlerdetails:", e) print("-----------------------------------") except requests.exceptions.HTTPError as e: print("\n-----------------------------------") print("⚠️ FEHLER: Discord API-Antwortfehler.") print("Der Befehl wurde gesendet, aber Discord hat mit einem Fehler geantwortet.") print("Dies könnte an falschen Token, Berechtigungen oder IDs liegen.") print(f"Statuscode: {response.status_code}") print("Fehlerdetails:", e) print("Antwort-Body:", response.text) print("-----------------------------------") except Exception as e: print("\n-----------------------------------") print("❌ EIN UNBEKANNTER FEHLER IST AUFGETRETEN.") print("Fehlerdetails:", e) print("-----------------------------------")