API-Berechtigung zum Auslösen des Themen-Timers erforderlich

Hallo!

Ich versuche, die Funktion „Thema nach x Tagen seit der letzten Antwort schließen“ auszulösen, kann aber nicht herausfinden, welche Berechtigung dafür benötigt wird. Ich möchte eigentlich keine volle Schreibberechtigung vergeben.

Spezifischer Endpunkt:
POST /t/{ID}/timer

Beispiel-Payload:

status_type=close&based_on_last_post=true&duration_minutes=20160

Kann mir jemand weiterhelfen?

Vielen Dank im Voraus!

Hey Mathew,

Könntest du den Fehler teilen, der für die Überprüfung ausgelöst wird?

Hey @pedro

Ich habe immer eine 403-Fehlermeldung erhalten, es sei denn, ich habe vollen Schreibzugriff erteilt.

Aus den Hinweisen in der API-Ansicht zu den unterstützten URLs scheint keine das Format des Timers (/t/{ID}/timer) zu entsprechen. Aber vielleicht übersehe ich auch einfach etwas :slight_smile:

Ich würde es vorziehen, keinen vollen Schreibzugriff zu erteilen, und versuche daher nur herauszufinden, welche Berechtigung speziell dafür benötigt wird.

Danke!

Die 403-Fehlermeldung hängt wahrscheinlich mit der Berechtigung zusammen, die vom Timer-Endpoint des Themas benötigt wird, und nicht mit den Parametern duration_minutes oder based_on_last_post.

Ich würde die Autorisierungsanforderungen des Endpoints im aktuellen Discourse-Quellcode für POST /t/{id}/timer überprüfen, anstatt mich nur auf die in der API-Dokumentation angezeigten Berechtigungen zu verlassen. Die Timer-Aktion könnte dieselbe themenspezifische Schreib-/Moderationsfähigkeit erfordern, die auch von der Benutzeroberfläche verwendet wird, was erklären würde, warum der volle Schreibzugriff derzeit funktioniert.

Falls es eine feinere Berechtigung für Themens-Timer gibt, sollte es möglich sein, diese anhand der Autorisierungsprüfung des Endpoints und der entsprechenden Policy-/Guardian-Methode zu identifizieren. Andernfalls wäre es vorzuziehen, den API-Schlüssel nur auf den erforderlichen Themenbereich einzuschränken, anstatt einen breiteren Schreibzugriff zu erteilen.