Casi in cui admin/users.json?email=foobar o admin/users/list/all.json?email=foobar restituiscono un array vuoto

Ciao,

Come da titolo, quando eseguo gli endpoint sopra ottengo una risposta [] in Postman. Quasi tutti [] se l’utente foobar non ha creato alcun argomento, ma c’è un utente che ha appena creato un argomento e la query sopra risponde anche con [], mentre penso che entrambi dovrebbero sempre restituire le informazioni dell’utente poiché queste informazioni di base (IP registrato, nome utente) sono informazioni dell’utente quando hanno appena creato il loro account.

A proposito, non riesco a trovare l’endpoint di admin/users.json in https://docs.discourse.org/. È stato rimosso e non dovrebbe più essere utilizzato. Grazie!

1 Mi Piace

C’è anche questo endpoint /admin/users/list/{flag}.json che puoi usare.

Per filtrare per email puoi fare:

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

Controllerò la documentazione API per questi endpoint e vedrò se dobbiamo apportare alcuni aggiornamenti.

Ciao @blake,

Cosa succede se chiamo ancora admin/users.json, otterrò un 404 o posso continuare a usarlo nel mio codice. La versione della mia installazione di discourse è 3.4.0.beta2, significa che posso ancora usare admin/users.json?

La cosa strana è che non riesco a trovare admin/users/list/all.json?email su https://docs.discourse.org/.

Sì, va benissimo. Puoi continuare a usare /admin/users.json. Utilizza esattamente lo stesso codice sottostante di /admin/users/list/{flag}.json. Questo è probabilmente uno dei motivi per cui non è ancora stato documentato.

Sono in grado di far restituire a /admin/users.json un utente nuovo di zecca senza argomenti.

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
  }
]

Devi assicurarti di utilizzare l’indirizzo email esatto, altrimenti otterrai un array vuoto come risultato.

Grazie @blake. È colpa mia che non ho codificato il segno + nella stringa di query, il che ha causato la risposta vuota. Con la codifica corretta sono stati restituiti i risultati attesi.

Presumo lo stesso motivo per admin/users/list/all.json?email, anche se non appare nella documentazione.

1 Mi Piace

In realtà è documentato qui:

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

ma all non è un “flag” valido da passare.

Dovrai usare la paginazione per ottenere tutti gli utenti.

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 Mi Piace

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