通过API无法编辑主题,尽管有主题写入权限

大家好,

我注意到,尽管我拥有主题写入权限,但我无法编辑主题的标题。
这似乎只在 API 密钥具有全局范围时才有效。

使用具有以下权限范围的 API 密钥:

我收到以下错误:

curl 'https://__NAME__.discourse.team/t/-/19.json' \
  -H "Api-Key: 3990a1..." \
  -H "Api-Username: system" \
  -H "Content-Type: application/json" \
  -X PUT \
  -d "{ \"title\": \"Title - test curl v5\" }"

{"errors":["You are not permitted to view the requested resource. The API username or key is invalid."],"error_type":"invalid_access"}

当我选择所有精细范围时,我收到相同的响应。

只有在创建具有范围:全局的 API 密钥时,我才能编辑主题的标题:

curl 'https://__NAME__.discourse.team/t/-/19.json' \
  -H "Api-Key: 0adc49d..." \
  -H "Api-Username: system" \
  -H "Content-Type: application/json" \
  -X PUT \
  -d "{ \"title\": \"Title - test curl v5\" }"

{"basic_topic":{"id":19,"title":"Title - test curl v5","fancy_title":"Title - test curl v5","slug":"title-test-curl-v5","posts_count":2}}

我期望主题写入权限支持编辑操作。在我看来,强制使用全局范围是不希望的。

2 个赞

您是想写一个新主题还是修改一个现有主题?

@pfaffman 我正在尝试通过更新主题端点 Discourse API Docs 来编辑主题的标题

2 个赞

我会研究一下这个 API 范围。我猜它只查看了 POST 请求,而没有查看用于更新的 PUT 请求。

1 个赞

现在有一个更新主题范围可供您使用。

curl -i -sS -X PUT "http://localhost:4200/t/-/101.json"  \
-H "Content-Type: multipart/form-data"  \
-H "Api-Key: 54096675ed84dcf0016a3b05199cccde67e5175057e53f8e005e2625940a15e6"  \
-H "Api-Username: blake.erickson"  \
-F "title=8bd599 cae3dfdbf 7210753"

HTTP/1.1 200 OK
5 个赞