Isso ocorre porque ele retorna apenas o conteúdo de https://seu-discourse.com/admin/users/{user_id}.json. Ele ignora a parte ip-info, não é um endpoint válido aqui.
E sim, eu não pensei nisso
mas sim, acho que você provavelmente precisa de uma chave Maxmind para retornar a localização.
Então, para resumir:
-
Se você quiser obter o IP de um usuário, você precisa fazer uma solicitação GET (com credenciais de administrador) para
https://seu-discourse.com/admin/users/{user_id}.json. Ele retornará o IP entre outras informações do usuário. -
Se você quiser localizar o IP, você precisa de uma chave Maxmind (a ser adicionada em
app.yml) e fazer uma solicitação GET para este endpoint:https://seu-discourse.com/admin/users/ip-info.json?ip={user_ip}.
Há a documentação da API: https://docs.discourse.org/
Mas nem todos os endpoints estão listados aqui. A API do Discourse é muito fácil de fazer engenharia reversa, no entanto: Reverse engineer the Discourse API. Foi assim que obtive as informações aqui.