API経由でグループのウォッチリストを更新しようとするとエラーが発生します (PUT groups/{id}.json)

優先度/深刻度:

中から高

プラットフォーム:

Pythonスクリプト、およびcURLコマンドライン

Discourse サーバーのバージョン:

3.6.0.beta3-latest (6adb4f8e84)

説明:

既存のグループの「watching_category_ids」を更新しようとすると、私のPythonスクリプト(単純な「requests.put」を使用)は次のエラーを報告します。

_doPut> ERROR from request:  422 Unprocessable Entity {‘user_count’: 2, ‘errors’: [‘You supplied invalid parameters to the request: update_existing_users’]}

私のJSONデータには update_existing_users というパラメーターは存在しないにもかかわらずです。

cURLを使用して確認すると:

curl -k -L -X PUT -H 'api-key:xyz’ \
   -H 'api-username:system'  \
   -H 'Accept:application/json;charset=utf-8'  \
   -H 'Content-Type:application/json'   \
   --data '{\"group\":{\"name\":\"eb-chair-exo\",\"watching_category_ids\":[336,337]}}' \
   https://cms-phys-talk.web.cern.ch/groups/46.json

同じエラーが発生します。

{“user_count”:2,“errors”:[“You supplied invalid parameters to the request: update_existing_users”]}%

再現手順:

curl -k -L -X PUT -H 'api-key:xyz’ \
   -H 'api-username:system'  \
   -H 'Accept:application/json;charset=utf-8'  \
   -H 'Content-Type:application/json'   \
   --data '{\"group\":{\"name\":\"eb-chair-exo\",\"watching_category_ids\":[336,337]}}' \
   https://cms-phys-talk.web.cern.ch/groups/46.json

編集:Discourseサーバーのバージョンを追加しました

ええ、そのエンドポイントは少し奇妙です。影響を受ける可能性のあるユーザー数についてスタッフメンバーに警告し、変更を遡及的に適用するかどうかを選択できるようにしたかったのです。

そのため、サーバーからの応答に「{ 'user_count': 2, ... }」が表示されています。

エラーメッセージをより分かりやすく明確にし、この「ユースケース」をより適切に処理できるようにフロントエンドのコードを改善し、仕様も追加しました。

「いいね!」 1

こんにちは。迅速なご対応ありがとうございます!:slight_smile:

残念ながら、まだ混乱しています。特定のグループの watching_category_ids の値を設定する必要がありますが、エラーメッセージは変更されたものの、依然として 422 エラーが発生します。REST API を使用してスクリプト経由でグループを新しい watching_category_ids のリストで更新するには、どうすればよいでしょうか?

PUT コールの JSON データに \"update_existing_users”=True を追加しようと試みましたが、報告されたときと同じエラーになりました。:frowning:

重ねて感謝いたします。

アンドレアスより

それは、小文字の文字列「true」を期待しています

多謝,@zogstrip !現在可以正常運作了!:smiley:

(另外供參考,"update_existing_users”=True 必須在發送的 json 中與 “group” 項目並列/平行(這裡以 Python 語法顯示,所以 True 會被轉換為字串 "true"):

            jsonData={
                "group": {
                    "name": f"{groupName}",
                    "watching_category_ids": newWatchList,
                },
                "update_existing_users": True,
            },

このトピックは20時間後に自動的にクローズされました。新しい返信は許可されていません。