获取某个用户的通知

响应这个主题:https://meta.discourse.org/t/how-to-allow-users-to-get-their-api-key/174140/4,我决定将我的应用仅限于管理员使用,他们可以通过 /admin 面板轻松创建 API 密钥。应用目前可以运行,但我需要解决一个问题:API 密钥必须具有全局访问权限(即读写权限),才能访问端点 /notifications.json?username=theusername。在 API 创建面板中,我看到有一个名为 “show” 的作用域,它允许访问端点 “/users/:username/notifications”。但是,当我尝试使用具有该作用域的密钥通过 Postman 访问此 URL 时,收到的是 HTML 代码。同样,访问 “/users/:username/notifications.json” 会返回用户信息,但不会返回通知信息。此外,仅凭该作用域我无法访问 /notifications.json?username=…。因此,我的结论是:要正确获取通知,全局密钥是唯一可行的方案,对吗?感谢大家的帮助。

我无法复现此问题。

我获取了一个如下的管理员 API 密钥:

并且以下 cURL 请求也能正常工作:

➜  ~ curl 'https://meta.discourse.org/u/falco/notifications.json' \
-H "Api-Key: whyisthisapikeysolonglol"

再次感谢您的回复,Falco。正如我之前提到的,这个 URL 确实向我返回了响应,但内容并非关于通知,而是关于用户信息,您可以参考这张图片:

这确实如此!

看起来 /u/:username/notifications 只是一个浏览器路由,而 Ember 应用会使用标准的 /notifications.json 路由来获取实际数据。目前,该路由并不在管理员 API 密钥的可用作用域列表中。

因此,目前要获取通知,只能使用用户 API 密钥,或者使用无作用域的管理员 API 密钥。

谢谢,这就是我需要的全部信息。祝好 :slight_smile: