# 为 Discourse Events REST 端点添加细粒度 API 密钥权限范围

**URL:** <https://meta.discourse.org/t/add-granular-api-key-scopes-for-discourse-events-rest-endpoints/413352>\
**Category:** Feature\
**Tags:** events, rest-api\
**Created:** [2026年九月25日 17:41 UTC](https://meta.discourse.org/t/add-granular-api-key-scopes-for-discourse-events-rest-endpoints/413352 "2026-09-25T17:41:37Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ethsim2](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ethsim2/32/522255_2.png) [@Ethsim2](https://meta.discourse.org/u/Ethsim2)\
**Post date:** [2026年九月25日 17:41 UTC](https://meta.discourse.org/t/add-granular-api-key-scopes-for-discourse-events-rest-endpoints/413352/1 "2026-09-25T17:41:37Z")

</div>

Discourse Events 在 `/discourse-post-event/...` 路径下公开了多个 REST 端点，但在创建具有 **细粒度（Granular）权限范围的管理员 API 密钥** 时，似乎没有专门针对 Events 的权限范围。

目前已经存在一个用于日历订阅源（如 ICS 端点）的 `discourse-calendar:events_calendar` **用户 API 密钥** 权限范围，因此本请求专门针对 **细粒度的管理员/服务器到服务器 REST API 密钥** ，而非日历订阅密钥。

**使用场景**

外部集成可能只需要查询 Discourse Events——例如，检查某个事件是否存在或获取事件信息。

目前，似乎没有办法颁发一个专门限制在 Discourse Events REST 端点上的管理员 API 密钥。这意味着集成可能需要被授予比实际所需更广泛的 API 权限范围。

如果 `discourse-events` 能为其 REST 路由注册细粒度的 API 密钥权限范围，将有助于集成遵循最小权限原则。

理想情况下，这些权限范围可以区分不同的操作，例如：

- 读取/查询事件
- 管理事件
- 管理事件受邀者

即使最初只提供一个只读的 Events 权限范围也会很有用。

一份[最近的相关报告](https://meta.discourse.org/t/private-group-internal-events/412794/6)也指出，在尝试使用 **细粒度** API 密钥权限范围时，没有发现针对 Events 端点的明显限制选项。

尽管插件本身现在已更名为 `discourse-events`，但现有的 Events 路由为了兼容性仍保留了 `/discourse-post-event/...` URL 命名空间，因此我认为权限范围不一定需要使用旧的插件名称。

我目前没有时间为此准备一个 PR，但我想将其作为一个功能请求提出，以防这对其他集成也有用，或者适合作为 #pr-welcome 的变更。
