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?

2 „Gefällt mir“

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).

1 „Gefällt mir“

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?

Dieses Thema wurde nach 6 Tagen automatisch geschlossen. Neue Antworten sind nicht mehr möglich.