如何根据用户当前位置投放内部广告?

那是因为它只返回 https://your-discourse.com/admin/users/{user_id}.json 的内容。它忽略了 ip-info 部分,这里不是一个有效的端点。

是的,我没考虑到这一点 :person_facepalming:,但是的,我认为你可能需要一个 Maxmind 密钥才能返回位置信息。

所以,总结一下:

  1. 如果你想获取用户的 IP,你需要向 https://your-discourse.com/admin/users/{user_id}.json 发送一个 GET 请求(需要管理员凭据)。它将返回 IP 地址以及其他用户信息。

  2. 如果你想定位 IP 地址,你需要一个 Maxmind 密钥(添加到 app.yml 中),然后向此端点发送一个 GET 请求:https://your-discourse.com/admin/users/ip-info.json?ip={user_ip}

这里有 API 文档:https://docs.discourse.org/
但并非所有端点都列在这里。Discourse 的 API 非常容易逆向工程:Reverse engineer the Discourse API