Kann die API zum Hinzufügen und Entfernen von Gruppenbesitzern nicht verstehen

Ich möchte Gruppenbesitzer über die API hinzufügen und entfernen. Dies ist in den API-Dokumenten nicht dokumentiert.

Wenn ich die Aufrufe als Administrator protokolliere, ist das Hinzufügen eines Benutzers als Besitzer:

PUT groups/<gid>/owners mit einer Nutzlast von usernames=nikkilocke (beachten Sie kein Admin!)

Das Entfernen eines Benutzers aus den Besitzern ist:

DELETE admin/groups/<gid>/owners mit einer Nutzlast von user_id=<uid>

Die Untersuchung des Quellcodes zeigt:


      def group_add_owners(group_id, args)
        args = API.params(args).required(:usernames).to_h
        put("/admin/groups/#{group_id}/owners.json", group: args)
      end

      def group_remove_owners(group_id, args)
        args = API.params(args).required(:usernames).to_h
        delete("/admin/groups/#{group_id}/owners.json", group: args)
      end

und dieser Code scheint sich seit 2023 nicht geändert zu haben.

Ich verwende Discourse 3.4.7, und der Einstiegspunkt zum Hinzufügen von Besitzern im Quellcode gibt einen 404-Fehler zurück.

Versuchte URLs:

PUT /groups/384/owners usernames=nikkilocke OK

PUT /admin/groups/384/owners group[usernames]=nikkilocke 404 Fehler

DEL /admin/groups/384/owners group[usernames]=nikkilocke OK

DEL /admin/groups/384/owners user_id = 12 OK

Kann mir jemand sagen, was los ist und welche URLs ich dafür verwenden soll?

Ich gehe davon aus, dass das ein Tippfehler ist und nicht die Ursache deines Fehlers?

Die beste und sicherste Dokumentation für die API ist Reverse-Engineering der Discourse-API

Sind Sie sicher, dass Sie einen gültigen API-Schlüssel haben und ihn korrekt übergeben? Ein 404-Fehler wird erwartet, wenn Sie nicht ordnungsgemäß authentifiziert sind.

Können Sie Anfragen stellen, die eine Autorisierung erfordern?

Wie ich im ursprünglichen Beitrag sagte, funktionieren 3 von 4 Möglichkeiten einwandfrei (mit demselben API-Schlüssel).

Ah. Entschuldigung. Das „OK“ am Ende der Zeile war für mich irgendwie zu subtil, um es zu verstehen.

Wenn ich einen Besitzer hinzufüge, sehe ich diese PUT-Anfrage https://example.com/groups/75/owners.json mit usernames=\npfaffman123 in den Formulardaten.

Haben Sie die Reverse-Engineering-Schritte befolgt, die ich verlinkt habe?

@Nikki_Locke konnten Sie Ihr Problem lösen?