大家好,
我正在尝试使用 discourse_api gem:
client = DiscourseApi::Client.new("https://<mysite>.com")
client.api_key = "<my global key>"
client.api_username = "system"
作为基本设置,然后
client.latest_topics
能正确返回数据,但是……
client.get_dashboard_stats
却返回了一个 URL“未找到”错误。我猜测当某个路由需要密钥时会出问题,因为 client.latest_topics 是正常工作的。
我已经反复确认密钥是正确的,甚至重新生成过一个密钥并尝试使用,同时也勾选了全局访问选项。URL 也是正确的。还有其他需要检查的地方吗?
祝好!
2 个赞
blake
(Blake Erickson)
2
这很可能是一个 API 密钥认证问题。
如果您在无痕浏览器窗口中打开未登录的站点,并访问该路由 https://yoursite/admin/dashboard.json,将返回:
{"errors":["The requested URL or resource could not be found."],"error_type":"not_found"}
但如果您已登录站点并访问同一 URL,则应看到 JSON 结果。
另外,请检查 API 密钥是设置为“所有用户”还是“单个用户”。如果设置为单个用户,请确保其与发起 API 请求的用户匹配。
话虽如此,看起来 API gem 中的两个仪表板端点需要更新。get_dashboard_stats 仍然可以工作,但返回的信息不如以前多,而 get_dashboard_stats_totals 似乎也需要更新。
4 个赞
我同意这很可能与密钥有关,但我已尝试使用“所有用户”和“单用户”设置(使用管理员用户名),仍然收到您发布的“未找到”错误。
密钥是正确的,URL 也是正确的,我还尝试了所有不同的设置以及其他在 API 示例中列出的端点。所有请求都返回“请求的 URL 或资源未找到”。我想不出还有什么其他办法了:smiley:
我猜对于全局密钥,用户权限范围在这里不适用?
1 个赞
blake
(Blake Erickson)
4
你能运行以下命令
gem list discourse_api
来查看你正在使用的 discourse_api gem 的版本吗?
3 个赞
0.10.0 —— 这大概就是原因,它试图使用 URL 参数而不是 HTTP 头:slight_smile 谢谢!
3 个赞
system
(system)
关闭
6
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.