Obtén la dirección de correo electrónico de un usuario mediante API

¿Existe alguna forma de obtener la dirección de correo electrónico actual de un usuario a través de la API?

Nuestro caso de uso es el siguiente:

Permitimos que los usuarios gestionen su información de Discourse a través de nuestro sitio web. En general, Discourse se utiliza únicamente como lista de correo y casi ningún usuario visita el sitio real de Discourse. Quiero poder mostrar al usuario la dirección de correo electrónico actual que está utilizando Discourse para que pueda ver si necesita ser cambiada.

Puedo hacer esto con todos los demás campos excepto el correo electrónico.

Antes existía un punto final de API users/{username}/emails, pero parece que ya no está disponible.

Hola,

GET /users/:username.json

mostrará el correo electrónico en dos casos:

  • el ID de usuario del titular de la clave API es el mismo que el ID de usuario asociado al nombre de usuario solicitado
  • el titular de la clave API es personal y el usuario solicitado está en etapa de preparación

Lee más sobre esto en el código:

Que yo sepa, esta ruta de código no ha cambiado recientemente.

Sí, pero eso no me ayuda. Todos los usuarios ya están activos y la clave de API del usuario no coincidirá.

Esta solicitud funciona para mí:

curl "http://example.com/users/joffreyjaffeux/emails.json" \
     -H 'Api-Username: joffreyjaffeux' \
     -H 'Api-Key: xxx' \
     -H 'Content-Type: application/json; charset=utf-8' \

Pero, ¿funciona si la URL es http://example.com/users/paulapostolos/emails.json?

Sí, debería funcionar para ti y para otros usuarios, siempre que esto sea cierto:

  def can_check_emails?(user)
    is_admin? || (is_staff? && SiteSetting.moderators_view_emails)
  end

Ten en cuenta que hacerlo activará un registro de acciones del personal.

Eso funcionó… Tenía un código antiguo que solía funcionar (versión 1.4 aprox.) y que tenía la solicitud como PUT y sin .json al final. Lo modifiqué a GET y cambié la URL, y ahora funciona.

¡Gracias por la ayuda!