确认对作者限制站点设置的 API 访问权限

我正在开发一个集成,通过 API 发布并同步附属主题到 Discourse。为了进行设置诊断,我希望读取论坛当前的创作限制,以便集成在尝试创建或更新主题之前对内容进行预检。

我试图确认访问权限的设置包括:

min_topic_title_length
max_topic_title_length
min_first_post_length
min_post_length
max_post_length
max_tags_per_topic
max_tag_length
tagging_enabled
create_tag_allowed_groups
tag_topic_allowed_groups

我首先检查了 /site.json,它是可访问的,对于公开的功能提示很有用,但它似乎没有暴露这些具体的创作限制设置。

使用非管理员机器人用户的 API 密钥时,以下路径返回了 404

/site_settings.json
/admin/site_settings.json
/admin/site_settings

在将机器人用户设为管理员后,以下路径可以正常工作:

/admin/site_settings.json
/admin/site_settings

使用的请求头:

Accept: application/json
Api-Key: ...
Api-Username: discussbridge-bot
X-Requested-With: XMLHttpRequest

/site_settings.json 仍然返回 404

我的问题:

  1. /admin/site_settings.json 是否是读取当前站点设置的预期 API 路径?
  2. 是否需要管理员用户权限,还是有受支持的只读/细粒度 API 作用域用于此目的?
  3. /site_settings.json 是否已弃用、依赖于插件,或者预期不存在?
  4. 对于集成,推荐的模式是使用具有管理员权限的诊断/设置密钥来读取设置,同时使用权限较低的发布密钥来进行正常的主题/帖子同步工作吗?

目标不是通过 API 更改设置,而是在设置诊断期间仅读取它们,以便集成

  1. 它是 /admin/site_settings.json

  2. 你需要是管理员,除非是那些设置了 client: true 的选项,这些可以在 /site/settings.json 中找到

除了最后两项,你需要的所有设置都可以在 /site/settings.json 中找到。

但对于允许的组,机制有所不同:如果你以特定用户身份请求 /site.json,你可以检查 can_tag_topicscan_create_tags

  1. 据我所知,/site_settings.json 从未存在过。

  2. 我认为,针对你的具体用例,你可以使用普通用户并采用第 2 点中提到的方法。