是否可以通过 API 获取所有用户的电子邮件?

我见过这个链接:Is there a way to get a user email adress from the API?

不过,我们需要通过 Discourse API 在另一个服务中验证某个电子邮件是否存在于 Discourse 站点上。我们可以通过 /u/search/users.json 搜索用户名或姓名,但这些接口似乎不会返回电子邮件地址。

那么,您能否搜索或查询所有电子邮件以进行比较?

You can use the Data Explorer plugin to create a query and then hit the query API afterwards in a query like SELECT * FROM user_emails.

At per user there is also the https://meta.discourse.org/u/<username>/emails.json endpoint.

1 个赞

Yes the link included in my initial question is “Discourse Meta/emails.json” but is there a way to get all user emails? … I would rather use the API then implement a plugin that allows SQL queries if at all possible.

Our API endpoints are the ones consumed by the web app, since we log email queries on the webapp we don’t expose anywhere to bulk grab emails.

The only way, right now, is using the above mentioned Data Explorer based solution.

Just to be clear, we are using the API, via secret key, I understand that the front-end would not have the same rights, can the API not have access though?

To give more details, we are have an app and discourse, both on Auth0 SSO authorization, however if someone logs into our app we want to make sure they have an account Discourse (and direct them to that link). Maybe it’s not the best way to check if Discourse has registered that email if they come to our site first. That is a link to Discourse in the event that the email has not been registered

If you are using true Discourse SSO, you can query the existence of a user by their external unique ID passed in the SSO payload using GET https://example.com/u/by-external/<EXTERNAL_ID>

2 个赞