作为版主,我想为 discourse 论坛使用 API。通常它已激活,并且我设法获得了一个 API 密钥。我使用了这个脚本:
我设法检索了一个 32 个字符长的密钥(是这样吗?),并且在我账户的安全设置中,该应用程序显示了这些权限:
读取所有
写入所有
实时更新
推送通知到外部服务
读取和清除通知
读取用户会话信息
创建一次性登录令牌
这看起来不错。但是,当我尝试使用以下脚本访问时:
from pydiscourse import DiscourseClient
client = DiscourseClient(
'https://forum.example.com',
api_username='tflidd',
api_key='388b79103056fede1d3223dae032df99')
client.user("tflidd")
这是一个 Python 库,所以我认为它应该可以工作。api_key 具有这种特定格式,它不是实际的密钥。我收到了用户名或 API 密钥无效的错误。
我应该使用我的用户名还是应用程序名称?
API 密钥至少是正确的格式吗,也许解密时出了什么问题?
如果我像这里一样使用 curl (Discourse-user-notes API - #4 by codetricity):
curl https://forum.example.com/t/95783.json\ -H 'Api-Key: 388b79103056fede1d3223dae032df99'\ -H 'Api-Username: tflidd'
我也收到一个错误:
{"errors":["You are not permitted to view the requested resource. The API username or key is invalid."],"error_type":"invalid_access"}
如果我在已登录的网页浏览器中打开相同的 URL 和 json,网页浏览器会显示正确的 json 对象。所以主题存在,并且我有权限访问它(这甚至是一个公开的主题)。
我只是版主,没有直接的管理员访问权限。如果你有关于日志的提示,我可以向管理员请求更多信息。
如果这很重要,已安装的版本是:3.2.0.beta4-dev