C'è un modo per ottenere tutte le email degli utenti tramite API?

Ho visto questo link: Is there a way to get a user email adress from the API?

Tuttavia, abbiamo bisogno di verificare in un servizio diverso, utilizzando l’API di Discourse, se un indirizzo email esiste sul sito Discourse. Possiamo cercare per nome utente o nome tramite /u/search/users.json, ma questi endpoint non sembrano restituire l’indirizzo email.

Quindi è possibile cercare o interrogare tutti gli indirizzi email per effettuare un confronto?

Puoi utilizzare il plugin Data Explorer per creare una query e successivamente chiamare l’API della query con un comando come SELECT * FROM user_emails.

Per ogni utente è inoltre disponibile l’endpoint https://meta.discourse.org/u/<username>/emails.json.

Sì, il link incluso nella mia domanda iniziale è “Discourse Meta/emails.json”, ma esiste un modo per ottenere tutte le email degli utenti? … Preferirei utilizzare l’API piuttosto che implementare un plugin che consenta query SQL, se possibile.

I nostri endpoint API sono quelli utilizzati dall’applicazione web. Poiché registriamo le query relative alle email sull’app web, non esponiamo alcun punto di accesso per il recupero massivo degli indirizzi email.

L’unico modo, al momento, è utilizzare la soluzione basata su Data Explorer menzionata sopra.

Per essere chiari, stiamo utilizzando l’API tramite una chiave segreta. So che il front-end non avrebbe gli stessi privilegi, ma l’API non può avere accesso?

Per fornire maggiori dettagli, abbiamo un’app e Discourse, entrambi protetti dall’autorizzazione SSO di Auth0. Tuttavia, se qualcuno accede alla nostra app, vogliamo assicurarci che abbia un account su Discourse (e indirizzarlo a quel link). Forse non è il modo migliore per verificare se Discourse ha registrato quell’indirizzo email se l’utente arriva prima sul nostro sito. Questo è un link a Discourse nel caso in cui l’indirizzo email non sia ancora stato registrato.

Se stai utilizzando il vero Discourse SSO, puoi verificare l’esistenza di un utente tramite il suo ID esterno univoco passato nel payload SSO utilizzando GET https://example.com/u/by-external/<EXTERNAL_ID>