Alguém sabe como obter o “external_id” de um usuário via API? Adicionei um external_id no login SSO, mas agora, ao consultar os usuários, não vejo nenhum “external_id” no hash de usuário retornado pela API. Estou tentando usar o external_id para identificar usuários do meu banco de dados ao processar um webhook.
Sim, isso pode ser feito enviando uma solicitação GET autenticada para https://discourse.example.com/u/by-external/{external_id}.json
Essa rota está documentada aqui: Discourse API Docs.
E para obter o inverso (ou seja, obter o external_id dado um user_id), você pode:
-
Usar a API Ruby do Discourse e chamar o método: user_sso(user_id)
-
Enviar uma solicitação GET autenticada para:
https://discourse.example.com/admin/users/{id}.json
e procurar pela chave de hash [“single_sign_on_record”][“external_id”]
Observe que single_sign_on_record (e external_id) NÃO é retornado por uma chamada para:
https://discourse.example.com/users/{username}.json