你好,
我生成了一个由管理员颁发的 API 密钥,包含 write、read 和 read lists 作用域。但是,当我尝试使用该密钥(在请求头 Api-Key 中添加该密钥)来访问 {{localhost}}/posts.json 端点时,收到以下错误:
"errors": [
"您无权查看请求的资源。API 用户名或密钥无效。"
],
"error_type": "invalid_access"
}
另一方面,生成全局密钥后,我可以访问该端点。读取 {{localhost}}/posts.json 所需的正确(最小)作用域是什么?
simon
2
我尚未测试此情况,但我认为您遇到的正是预期行为。您可以点击每个 API 密钥权限范围旁边显示的锚点按钮,查看该范围允许访问哪些路径。您会看到 read 范围仅适用于以 /t 开头的路由。read lists 范围则允许您访问 Discourse 的主题列表。目前没有专门允许访问 /posts.json 的权限范围,因此您似乎需要使用全局密钥来实现该操作。
我在想,是否将 /posts.json 添加到 read 范围是有意义的。
你好,Simon!感谢你的回复和解释。针对我的使用场景,我需要从 /posts.json 读取帖子,但同时希望尽可能减少侵入性,仅申请只读权限。有什么变通方法吗?
simon
4
如果您仅查询公开帖子,或许可以尝试向 /posts.json 发送未认证的 API 请求。如果您的站点是私有的,或者帖子位于受保护的分类中,我认为目前获取这些帖子的唯一方式是使用全局 API 密钥。
riking
(Kane York)
5
pr-welcome 用于新增范围或将其添加到 read,我认为。