API로 사용자 이메일을 모두 가져올 수 있는 방법이 있나요?

다음 링크를 확인했습니다: Is there a way to get a user email adress from the API?

하지만 우리는 Discourse API를 사용하여 다른 서비스에서 이메일이 Discourse 사이트에 존재하는지 확인해야 합니다. /u/search/users.json을 통해 사용자 이름이나 이름을 검색할 수 있지만, 이메일 주소는 반환되지 않는 것으로 보입니다.

따라서 비교를 위해 모든 이메일을 검색하거나 조회할 수 있을까요?

Data Explorer 플러그인을 사용하여 쿼리를 생성한 후, SELECT * FROM user_emails와 같은 쿼리를 통해 쿼리 API를 호출할 수 있습니다.

사용자별로 https://meta.discourse.org/u/<username>/emails.json 엔드포인트도 사용할 수 있습니다.

네, 제 첫 질문에서 언급한 링크는 "Discourse Meta/emails.json"이 맞습니다. 그런데 모든 사용자의 이메일 주소를 가져올 수 있는 방법이 있을까요? … 가능하다면 플러그인을 구현해서 SQL 쿼리를 실행하는 것보다는 API를 사용하는 쪽이 더 나을 것 같습니다.

우리의 API 엔드포인트는 웹 앱에서 소비되는 것입니다. 웹 앱에서 이메일 쿼리를 기록하기 때문에, 이메일을 일괄적으로 가져갈 수 있는 곳은 어디에도 공개하지 않습니다.

현재로서는 위에서 언급한 Data Explorer 기반 솔루션을 사용하는 것이 유일한 방법입니다.

정확히 이해하기 위해 말씀드리면, 우리는 시크릿 키를 통해 API를 사용 중입니다. 프론트엔드에는 동일한 권한이 부여되지 않는다는 점은 이해하고 있습니다. 그렇다면 API는 접근할 수 없는 건가요?

자세히 설명드리면, 우리는 앱과 Discourse를 모두 사용하고 있으며, 둘 다 Auth0 SSO 인증을 적용하고 있습니다. 사용자가 우리 앱에 로그인할 때 Discourse에 계정이 있는지 확인하고(없다면 해당 링크로 유도하고 싶습니다). 만약 사용자가 먼저 우리 사이트로 온 경우, 이메일이 Discourse에 등록되어 있는지 확인하는 가장 좋은 방법이 아닐 수 있습니다. 이메일이 등록되지 않은 경우를 대비해 Discourse로 연결되는 링크를 제공하고자 합니다.

진정한 Discourse SSO를 사용 중이라면, SSO 페이로드에 포함된 외부 고유 ID를 사용하여 GET https://example.com/u/by-external/<EXTERNAL_ID>로 사용자 존재 여부를 조회할 수 있습니다.