admin/users.json?email=foobar 또는 admin/users/list/all.json?email=foobar가 빈 배열을 반환하는 경우

안녕하세요,

제목과 같이, 위에서 언급한 엔드포인트를 실행하면 Postman에서 [] 응답을 받습니다. foobar 사용자가 주제를 생성하지 않은 경우 거의 모든 요청에서 []가 반환되지만, 주제를 방금 생성한 한 사용자의 경우에도 위 쿼리는 []를 반환합니다. 저는 두 경우 모두 사용자가 계정을 방금 생성했을 때의 기본 정보(등록 IP, 사용자 이름)는 사용자 정보이므로 항상 사용자 정보를 반환해야 한다고 생각합니다.

참고로, https://docs.discourse.org/에서 admin/users.json 엔드포인트를 찾을 수 없습니다. 이 엔드포인트가 제거되어 더 이상 사용하지 말아야 하나요? 감사합니다!

사용할 수 있는 또 다른 엔드포인트인 /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 에러가 발생하나요, 아니면 코드의 기존 사용 방식을 유지할 수 있을까요? 제 디스코ourse 설치 버전은 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. 쿼리 문자열에서 mark의 +를 인코딩하지 않은 것은 제 실수입니다. 이로 인해 빈 응답이 반환되었습니다. 올바른 인코딩을 적용하면 예상된 결과가 반환됩니다.

admin/users/list/all.json?email도 동일한 이유 때문이라고 추정합니다. 문서에는 명시되어 있지 않지만요.

실제로는 여기에 문서화되어 있습니다:

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

다만 all은 전달할 수 있는 유효한 "플래그"가 아닙니다.

모든 사용자를 가져오려면 페이지네이션(pagination)을 사용해야 합니다.

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