API : trouver une adresse e-mail ou rechercher ?

J’ai lu un post sur Discourse, pensant avoir trouvé SITENAME.com/admin/users/list/all.json?email=some@email.com, ce dont j’ai besoin : vérifier si notre site SSO possède un membre Discourse via une requête à l’API Discourse (depuis notre API). Mais comment faire, puisque le lien ci-dessus ne fonctionne pas ? Si je pouvais simplement obtenir une liste de tous les utilisateurs, j’implémenterais un filtre/résultat basé sur l’adresse e-mail.

Je pense que c’est très protégé ou inaccessible, ou existe-t-il une solution ?

Cette route devrait toujours fonctionner (je viens de la tester).

Pour SSO, vous pouvez également utiliser by-external.
Voir Discourse API Docs

@RGJ tu as raison ! Ça fonctionne !!! Il y a un problème avec mes tests de requêtes Postman. :frowning:

Cependant, avec une requête SuperAgent comme :

let res = await superagent.get(`${this.baseUrl}/admin/users/list/active`)
          .query({show_emails: true})
          .set('Api-Key', this.apiKey)
          .set('Api-Username', this.defaultDiscourseUser)
          .set('Content-Type', 'application/json')
          .set('Accept', 'application/json')

J’ai pu récupérer les adresses e-mail.

Mes excuses, mais il serait pratique d’avoir une requête API qui renvoie simplement vrai/faux si un e-mail existe. Pour l’instant, je récupère tous les utilisateurs (une réponse un peu lourde car elle renvoie toutes les informations utilisateur), alors que tout ce que je veux, c’est vérifier si l’e-mail existe. En fait, je veux juste un vrai/faux de Discourse pour savoir si l’utilisateur s’est connecté chez eux avant de venir sur notre site.

Avec

superagent.get(`${this.baseUrl}/admin/users/list/all.json?email=${emailAddress}`)

vous ne récupérez pas tous les utilisateurs.

Oh, génial, merci beaucoup ! Cela ne récupérera qu’un seul utilisateur et une seule adresse e-mail ? Ça me convient ! Super !!!