Casos en los que admin/users.json?email=foobar o admin/users/list/all.json?email=foobar devuelven array vacío

Hola,

Según el título, cuando ejecuto los puntos finales anteriores, obtengo una respuesta [] en Postman. Casi todos [] si el usuario foobar no tiene ningún tema creado, pero hay un usuario que acaba de crear un tema y la consulta anterior responde con [] también, mientras que creo que ambos siempre deberían devolver información de los usuarios, ya que esa información básica (IP registrada, nombre de usuario) es información de los usuarios cuando acaban de crear su cuenta.

Por cierto, no puedo encontrar el punto final de admin/users.json en https://docs.discourse.org/. ¿Se ha eliminado y se supone que ya no se debe usar? ¡Gracias!

1 me gusta

También tienes este endpoint /admin/users/list/{flag}.json que puedes usar.

Para filtrar por correo electrónico puedes hacer:

http://localhost:4200/admin/users/list/active.json?filter=name%40example.com&show_emails=true&order=&asc=&page=1

Revisaré la documentación de la API para estos endpoints y veré si necesitamos hacer algunas actualizaciones.

Hola @blake,

¿Qué pasa si todavía llamo a admin/users.json, obtendré un 404 o puedo seguir usándolo en mi código? Mi versión de instalación de Discourse es 3.4.0.beta2, ¿significa que todavía puedo usar admin/users.json?
Lo extraño es que no puedo encontrar admin/users/list/all.json?email en https://docs.discourse.org/.

Sí, está totalmente bien. Puedes seguir usando /admin/users.json. Utiliza el mismo código subyacente que /admin/users/list/{flag}.json. Esa es probablemente una de las razones por las que aún no se ha documentado.

Puedo hacer que /admin/users.json devuelva un usuario nuevo sin temas.

curl -i -sSL -X GET "http://localhost:4200/admin/users.json?email=982f145c7@example.com"  \
-H "Api-Key: ..."  \
-H "Api-Username: blake"

HTTP/1.1 200 OK

[
  {
    "id": 2731,
    "username": "982f145c7",
    "name": "982f145c7",
    "avatar_template": "/letter_avatar_proxy/v4/letter/9/46a35a/{size}.png",
    "active": true,
    "admin": false,
    "moderator": false,
    "last_seen_at": null,
    "last_emailed_at": null,
    "created_at": "2025-04-29T12:31:52.894Z",
    "last_seen_age": null,
    "last_emailed_age": null,
    "created_at_age": 103.259451,
    "trust_level": 1,
    "manual_locked_trust_level": null,
    "title": null,
    "time_read": 0,
    "staged": false,
    "can_be_deleted": true,
    "silence_reason": "",
    "days_visited": 0,
    "posts_read_count": 0,
    "topics_entered": 0,
    "post_count": 0
  }
]

Debes asegurarte de usar la dirección de correo electrónico exacta o obtendrás una matriz vacía como resultado.

Gracias @blake. Es mi culpa por no codificar el signo ‘+’ en la cadena de consulta, eso causó la respuesta vacía. Con la codificación correcta, se obtuvieron los resultados esperados.

Supongo que la misma razón se aplica a admin/users/list/all.json?email, aunque no aparezca en la documentación.

1 me gusta

De hecho, eso está documentado aquí:

https://docs.discourse.org/#tag/Admin/operation/adminListUsers

pero all no es un “flag” válido para pasar.

Necesitarás paginar para obtener todos los usuarios.

http://localhost:4200/admin/users/list/active.json?show_emails=false&page=1
http://localhost:4200/admin/users/list/active.json?show_emails=false&order=&asc=&page=2
2 Me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.