Это потому, что он возвращает только содержимое https://your-discourse.com/admin/users/{user_id}.json. Он игнорирует часть ip-info, так как это некорректная конечная точка в данном случае.
И да, я не подумал об этом
, но да, думаю, вам, вероятно, понадобится ключ Maxmind для получения геолокации.
Итак, подытожим:
-
Если вы хотите получить IP-адрес пользователя, вам нужно сделать GET-запрос (с учетными данными администратора) к
https://your-discourse.com/admin/users/{user_id}.json. Он вернет IP-адрес наряду с другой информацией о пользователе. -
Если вы хотите определить местоположение по IP-адресу, вам нужен ключ Maxmind (который нужно добавить в
app.yml), и вы должны сделать GET-запрос к этой конечной точке:https://your-discourse.com/admin/users/ip-info.json?ip={user_ip}.
Существует документация по API: https://docs.discourse.org/
Но не все конечные точки перечислены здесь. Однако API Discourse очень легко реверс-инжинирить: Reverse engineer the Discourse API. Именно так я и получил эту информацию.