创建和配置API密钥

API 密钥从“管理/API”页面生成。前往“管理-高级-API 密钥”:

点击“添加 API 密钥”按钮后,您将进入一个配置密钥的页面:

每个 API 密钥都需要一个描述、一个用户级别和一个范围。

描述

描述可以是您选择的任何内容。

用户级别

“用户级别”下拉菜单允许您选择“所有用户”或“单个用户”。如果选择了“所有用户”,则密钥可以代表任何用户使用。这是通过将您为其发出请求的用户设置为请求标头中的 Api-Username 来完成的。(有关如何设置请求标头的详细信息,请参阅 API 文档 中的身份验证示例。)

如果选择了“单个用户”,表单上将出现一个用户字段。在该字段中输入您为其生成 API 密钥的用户的用户名:

范围

“范围”下拉菜单允许您选择“全局”、“只读”或“粒度”作为范围。

如果选择“全局”作为范围,则该密钥可用于密钥所针对的用户或作为请求的 Api-Username 输入的用户名有权执行的所有请求

如果选择“只读”作为范围,API 密钥将只能用于发出 GET 请求。该密钥将能够发出密钥所针对的用户或作为请求的 Api-Username 输入的用户名有权执行的任何 GET 请求。

如果选择“粒度”作为范围,将打开一个表单,允许您从可用范围中进行选择。将鼠标悬停在某个范围的问号图标上,即可查看该范围的描述。单击该范围的链接图标,即可查看该范围支持的路径和请求方法的列表。请注意,许多范围允许您输入一个额外的参数来限制该范围允许访问的站点路径:

配置 API 密钥并单击“保存”按钮后,完整的 API 密钥将向您显示一次。请务必复制该密钥,因为无法再次查看完整的密钥。

:information_source: Discourse 中的 API 范围只能限制 API 密钥相对于用户现有权限可以执行的操作。它们不能授予超出相关用户已拥有的权限的额外权限。

:information_source: 180 天未使用的 API 密钥将自动撤销。这由 revoke_api_keys_unused_days 站点设置控制。

更多阅读

有关 Discourse 对 API 密钥应用的速率限制的详细信息:Discourse 中的全局速率限制和限制

Discourse API 文档:https://docs.discourse.org/。

关于如何构建 API 请求的有用指南:如何反向工程 Discourse API

5 个赞

此主题可以更新了。如果其他人在此之前完成,我很快就会进行更新。

在 Ubuntu 上的最新 Chrome 浏览器中,在本地开发站点和托管的 Discourse 站点上测试此功能,当我将鼠标悬停在 :question: 图标上时,不再显示工具提示。

今天早些时候,这件事情被发现了。我相信他们正在修复它 :crossed_fingers:

2 个赞

前两张关于如何生成 API 密钥的图片无法加载!

随着管理员设置布局的更改,我找不到在哪里生成此密钥。

这已经在 Missing images at Meta.discourse.org - #6 by Lilly 提到过了

我认为你可以在这里看到它们 https://web.archive.org/web/20221205183753/https://meta.discourse.org/t/create-and-configure-an-api-key/230124

3 个赞

新仪表板的位置位于管理员设置下拉菜单 - 高级 - API 密钥中。

已修复。还添加了新管理员菜单位置的屏幕截图。

谢谢 @Moin

5 个赞