グループオーナーの追加と削除のためのAPIが理解できません

API を使用してグループオーナーを追加および削除したいのですが、API ドキュメントには記載されていません。

管理者の権限でログインして呼び出しをトレースすると、ユーザーをオーナーにするには、

PUT groups/<gid>/owners ペイロードは usernames=nikkilocke (管理者なしに注意!)

オーナーからユーザーを削除するには、

DELETE admin/groups/<gid>/owners ペイロードは user_id=<uid>

ソースコードを調べると、次のようになります。

      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

そして、このコードは 2023 年から変更されていないようです。

Discourse 3.4.7 を実行していますが、ソースコードのオーナー追加のエントリ ポイントは 404 エラーを返します。

試した URL:

PUT /groups/384/owners usernames=nikkilocke OK

PUT /admin/groups/384/owners group[usernames]=nikkilocke 404 エラー

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

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

何が起こっているのか、そしてどちらの URL を使用すべきか、誰かアドバイスをいただけますか?

それはあなたのエラーの原因ではなく、タイプミスだと仮定しますか?

「いいね!」 2

APIの最も確実なドキュメントは、Discourse APIのリバースエンジニアリングです。

有効なAPIキーを持っており、正しく渡していることを確認しましたか?認証が正しく行われていない場合、404エラーが予想されます。

認証が必要なリクエストはできますか?

元の投稿で述べたように、4つの可能性のうち3つは(同じAPIキーで)正常に機能します。

「いいね!」 1

ああ。すみません。「OK」という言葉が、私にはあまりにも些細なことでした。

オーナーを追加すると、このPUTリクエスト https://example.com/groups/75/owners.json が表示され、フォームデータに usernames=\npfaffman123 が含まれます。

私がリンクしたリバースエンジニアリングの手順に従いましたか?

@Nikki_Locke 問題は解決できましたか?

このトピックは6日後に自動的に閉じられました。返信はもう許可されていません。