admin/users.json?email=foobar または admin/users/list/all.json?email=foobar が空の配列を返すケース

こんにちは。

タイトルの通り、上記のAPIエンドポイントを実行するとPostmanで [] という応答が得られます。ユーザー foobar がトピックを作成していない場合、ほとんどが [] となりますが、トピックをちょうど作成したユーザーに対しても、上記のクエリは [] と応答します。しかし、どちらの場合も、登録IPやユーザー名などの基本的なユーザー情報はアカウント作成時に存在するはずなので、常にユーザー情報が返されるべきだと考えます。

ちなみに、https://docs.discourse.org/admin/users.json のエンドポイントが見つかりません。これは削除されたか、もう使用すべきではないのでしょうか。よろしくお願いします。

「いいね!」 1

こちらでもエンドポイント /admin/users/list/{flag}.json を使用できます。

メールでフィルタリングするには、次のようにします。

http://localhost:4200/admin/users/list/active.json?filter=name%40example.com&show_emails=true&order=&asc=&page=1

これらのエンドポイントのAPIドキュメントを確認し、更新が必要かどうかを確認します。

こんにちは @blake さん、

admin/users.json を呼び出した場合、404エラーになりますか、それともコードで引き続き使用できますか?私の Discourse のインストールバージョンは 3.4.0.beta2 です。これは、admin/users.json を引き続き使用できることを意味しますか?

奇妙なのは、https://docs.discourse.org/admin/users/list/all.json?email が見つからないことです。

はい、完全に大丈夫です。/admin/users.json/admin/users/list/{flag}.json と全く同じ基盤コードを使用しています。おそらく、それがまだ文書化されていない理由の一つでしょう。

トピックが全くない新規ユーザーに対して /admin/users.json が返されることを確認できました。

curl -i -sSL -X GET "http://localhost:4200/admin/users.json?email=982f145c7@example.com"  \
-H "Api-Key: ..."  \
-H "Api-Username: blake"

HTTP/1.1 200 OK

[
  {
    "id": 2731,
    "username": "982f145c7",
    "name": "982f145c7",
    "avatar_template": "/letter_avatar_proxy/v4/letter/9/46a35a/{size}.png",
    "active": true,
    "admin": false,
    "moderator": false,
    "last_seen_at": null,
    "last_emailed_at": null,
    "created_at": "2025-04-29T12:31:52.894Z",
    "last_seen_age": null,
    "last_emailed_age": null,
    "created_at_age": 103.259451,
    "trust_level": 1,
    "manual_locked_trust_level": null,
    "title": null,
    "time_read": 0,
    "staged": false,
    "can_be_deleted": true,
    "silence_reason": "",
    "days_visited": 0,
    "posts_read_count": 0,
    "topics_entered": 0,
    "post_count": 0
  }
]

結果が空の配列になるのを避けるためには、正確なメールアドレスを使用する必要があります。

@blake、ありがとうございます。クエリ文字列でマーク+をエンコードしなかった私のミスで、空の応答が発生しました。正しくエンコードすると、期待どおりの結果が返されました。

ドキュメントには表示されませんが、admin/users/list/all.json?email についても同じ理由だと推測します。

「いいね!」 1

実際には、こちらで文書化されています。

https://docs.discourse.org/#tag/Admin/operation/adminListUsers

しかし、all は有効な「フラグ」ではありません。

すべてのユーザーを取得するには、ページネーションが必要です。

http://localhost:4200/admin/users/list/active.json?show_emails=false&page=1
http://localhost:4200/admin/users/list/active.json?show_emails=false&order=&asc=&page=2
「いいね!」 2

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.