API 密钥

Metabase 可以创建 API 密钥来验证对 API 的编程请求。要设置 API 密钥的权限,您可以将密钥分配给一个

关于 Metabase API 的警告

我们不对 Metabase API 进行版本控制。我们很少更改 API 端点,并且几乎从不删除它们,但如果您编写依赖于 API 的代码,将来您可能需要更新代码。

尽管如此,有时使用 API 还是很方便的,比如当管理大量人员和组的权限、批量归档或内容创建时。因此,我们添加了创建 API 密钥以验证您的编程请求的功能。

创建 API 密钥

要创建 API 密钥

  1. 点击右上角的“齿轮”图标。
  2. 选择管理员设置
  3. 转到“设置”选项卡。
  4. 点击左侧菜单上的认证选项卡。
  5. 滚动到 API 密钥并点击管理
  6. 点击创建 API 密钥按钮。
  7. 输入密钥名称。您可以有多个 API 密钥,所以给它一个能帮助您记住密钥用途的名称。
  8. 选择一个。该密钥将拥有与该组相同的权限。
  9. 点击创建
  10. 复制生成的 API 密钥并将其保存在安全的地方。Metabase 将无法再次向您显示该密钥。如果丢失了密钥,您需要重新生成一个新密钥。

从配置文件创建 API 密钥

如果您使用 Pro 或 Enterprise 自托管计划,您可以通过配置文件创建 API 密钥

管理 API 密钥

查看和管理现有 API 密钥

  1. 点击右上角的“齿轮”图标。
  2. 选择管理员设置
  3. 转到“设置”选项卡。
  4. 点击左侧菜单上的认证选项卡。
  5. 滚动到 API 密钥并点击管理

编辑 API 密钥

要编辑 API 密钥,请滚动到要编辑的密钥并点击铅笔图标。Metabase 将弹出一个编辑 API 密钥模式窗口,您可以在其中编辑

  • 密钥名称
  • 密钥所属的组。
  • 更改(重新生成)密钥。Metabase 将用新密钥替换现有 API 密钥。您将无法恢复旧密钥。

删除 API 密钥

您将无法恢复已删除的 API 密钥。您必须创建一个新密钥。

要删除 API 密钥

  1. 点击右上角的“齿轮”图标。
  2. 选择管理员设置
  3. 转到“设置”选项卡。
  4. 点击左侧菜单上的认证选项卡。
  5. 滚动到 API 密钥并点击管理
  6. 选择要删除的密钥并点击垃圾桶图标。
  7. Metabase 将弹出一个删除 API 密钥模式窗口。点击删除 API 密钥按钮。

Metabase 会将与被删除组关联的 API 密钥转移到“所有用户”组

如果您有分配给某个组的 API 密钥,但该组被删除后,API 密钥仍将有效,但 Metabase 会将这些密钥重新分配给“所有用户”组。如果您想更改它们的组,您需要手动编辑密钥。

示例 GET 请求

以下是一些返回 Metabase 中组的示例 GET 请求。这些示例假定您在默认端口 3000 上本地运行 Metabase。

curl 示例

YOUR_API_KEY 替换为您上面生成的 API 密钥。

curl \
-H 'x-api-key: YOUR_API_KEY' \
-X GET 'https://:3000/api/permissions/group'

JavaScript 示例

假设您已将密钥设置为环境变量,如下所示

export METABASE_API_KEY="YOUR_API_KEY"

这是一个使用 fetch 获取组列表的基本 GET 请求。您可以复制代码,将其保存为文件(例如,保存为 api-test.js),然后使用 node api-test.js 运行代码。

// Assuming you've set the key in process with
// `export METABASE_API_KEY="YOUR_KEY_HERE"`
const API_KEY = process.env.METABASE_API_KEY;

const init = {
  headers: {
    "Content-Type": "application/json",
    "X-API-KEY": API_KEY,
  },
};

const host = "http://127.0.0.1:3000";

async function getGroups() {
  const response = await fetch(`${host}/api/permissions/group`, init);
  return response.json();
}

getGroups().then((groups) => console.log("Groups in your Metabase:", groups));

延伸阅读

阅读其他版本的 Metabase 的文档。

这有帮助吗?

感谢您的反馈!
想改进这些文档?提出更改。
© . This site is unofficial and not affiliated with Metabase, Inc.