Wie man dieses Feld - "Solved" - programmgesteuert für jede Kategorie aktiviert

Hallo, wir haben das Plugin „Solved“ installiert und erstellen Kategorien programmgesteuert mit einem Python-Skript. Wir möchten diese Kategorieeinstellungen auf „True“ setzen. Beim Ausführen des Skripts wird gemeldet, dass das Update erfolgreich war, aber wenn wir das Einstellungsfeld dieser Kategorie überprüfen, ist es nicht auf „True“ gesetzt und immer noch auf „False“. Wie können wir dieses Problem debuggen und beheben?

2 „Gefällt mir“

Ich befolge immer Reverse engineer the Discourse API für solche Fragen.

5 „Gefällt mir“

Soweit ich weiß, wenn Sie Kategorien mit einem Skript erstellen, gehe ich davon aus, dass Sie JSON verwenden, um die Kategorien hinzuzufügen. Sie müssten einige Änderungen am Endpunkt und am Skript vornehmen. Sie können auch diese Dokumentation konsultieren: Discourse Categories API.

Discourse ist jedoch ein mächtiges Werkzeug. Sie können sich diesen Leitfaden ansehen: Reverse Engineering der Discourse API. Da Discourse von einer vollständigen JSON-API unterstützt wird, können Sie diese Reverse-Engineeren, die notwendigen Änderungen vornehmen und sie wie gewünscht zum Laufen bringen.

Ein kleiner Tipp:

  • Ändern Sie die gewünschte “Gelöst”-Einstellung manuell in der Benutzeroberfläche.
  • Untersuchen Sie die Netzwerkanfragen des Browsers, um den genauen API-Endpunkt, die Anfrage-Methode (z. B. PUT) und die Nutzdaten zu identifizieren.

In einem Python-Skript würde es ungefähr so aussehen:

payload = {
        "enable_solved": True  # Passen Sie dies an
    }

    response = requests.put(url, headers=headers, json=payload)
    if response.status_code == 200:
        print("Kategorie aktualisiert")
    else:
        print(f"Fehlgeschlagen: {response.status_code} - {response.text}")

update_category_settings(category_id=123)

PS: Ich bin mir da nicht ganz sicher, aber ich habe kürzlich einige Skripte erstellt, daher basiert diese Antwort auf Dingen, auf die ich bisher gestoßen bin. :slightly_smiling_face:

Danke Mihir, es hat geholfen, dieses Problem zu lösen. Ich schätze Ihre Beiträge und Vorschläge.

1 „Gefällt mir“

Danke, Thomas, dass Sie mich auf diesen Ansatz aufmerksam gemacht haben.

Ich freue mich, dass es geholfen hat :slight_smile: