触发主题计时器需要 API 权限

你好!

我想触发“在最后一次回复后 x 天关闭主题”的功能,但我不太清楚需要哪种权限。我并不想授予完整的写入权限。

具体端点:
POST /t/{ID}/timer

示例负载:

status_type=close&based_on_last_post=true&duration_minutes=20160

有人能指点一下我该怎么做吗?

提前感谢!

嘿,Mathew,

你能分享一下触发的那个用于审查的错误吗?

嘿 @pedro

除非我授予完全写入权限,否则我一直都会收到 403 错误。

从 API 视图中不同支持 URL 的提示来看,似乎没有一个与计时器的格式(/t/{ID}/timer)相匹配。但我可能只是忽略了什么 :slight_smile:

我倾向于不授予完全写入权限,所以只是想弄清楚这个特定功能需要哪种权限。

谢谢!

403 错误可能与主题计时器端点所需的权限有关,而不是 duration_minutes 或 based_on_last_post 参数。

建议查看当前 Discourse 源代码中 POST /t/{id}/timer 端点的授权要求,而不仅仅依赖 API 文档中显示的权限。计时器操作可能需要与 UI 使用的相同主题级写入/管理权限,这可以解释为什么目前完全写入权限是有效的。

如果存在针对主题计时器的更细粒度权限,应该可以通过端点的授权检查以及相应的策略/守卫方法来确定。否则,将 API 密钥限制为仅所需的主题范围,比授予更广泛的写入权限更可取。