Existe uma forma de exibir anúncios in-house com base na localização do usuário?

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 :person_facepalming: mas sim, acho que você provavelmente precisa de uma chave Maxmind para retornar a localização.

Então, para resumir:

  1. 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.

  2. 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.