Qualcuno sa come ottenere l’“external_id” di un utente dall’API? Ho aggiunto un external_id durante l’accesso SSO, ma ora, quando interrogo gli utenti, non vedo alcun “external_id” nell’hash utente restituito dall’API. Sto cercando di utilizzare l’external_id per identificare gli utenti dal mio database durante l’elaborazione di un webhook.
Sì, è possibile inviando una richiesta GET autenticata a https://discourse.example.com/u/by-external/{external_id}.json
Questa rotta è documentata qui: Discourse API Docs.
Per ottenere l’inverso (ovvero ottenere l’external_id dato un user_id), puoi:
-
Utilizzare l’API Ruby di Discourse e chiamare il metodo: user_sso(user_id)
-
Inviare una richiesta GET autenticata a:
https://discourse.example.com/admin/users/{id}.json
e cercare la chiave hash [“single_sign_on_record”][“external_id”]
Nota che single_sign_on_record (e external_id) NON viene restituito da una chiamata a:
https://discourse.example.com/users/{username}.json