# 使用 API 访问

> 为脚本和 MCP 客户端创建个人访问令牌，并通过 webhook 将 Livespace 的事件发送到你自己的系统。

在设置 › **API 访问**中，你可以创建个人访问令牌，让脚本或 MCP 客户端以你的身份使用 Dvina。管理员也可以在这里添加 webhook，将 Livespace 的事件发送到自己的系统。

Enterprise 套餐包含 API 访问功能。每位成员都可以创建自己的令牌；只有所有者和管理员能看到 **Webhook**。

## 创建令牌

1. 打开设置，选择 **API 访问**。
2. 在**个人访问令牌**下，选择**创建令牌**。
3. 输入**名称**，方便日后识别令牌的用途。
4. 选择**访问权限**：**只读**或**读写**。
5. 选择**到期时间**：**30 天后**、**90 天后**、**365 天后**或**永不过期**。
6. 选择**创建令牌**。
7. 在**复制你的令牌**下，复制令牌并妥善保存。令牌只会在此时显示一次。

令牌以你的身份在创建它的 Livespace 中使用，并具有你当前在该 Livespace 中的角色权限。**只读**令牌可以读取内容，但不能添加或更改任何内容。

要在 MCP 客户端中使用令牌，请参阅[使用 API 密钥而非 OAuth 连接](/docs/dvina-mcp/overview#connect-with-an-api-key-instead-of-oauth)。

## 查看、轮换或撤销令牌

你的令牌及其访问权限列在**个人访问令牌**下。选择一个令牌，即可查看其**开头字符**、**访问权限**、**上次使用时间**和**到期时间**。

- **要替换令牌**，选择**轮换…**，然后选择**轮换**以确认。新令牌会替换旧令牌，旧令牌立即失效。在**复制你的令牌**下复制新令牌。
- **要停用令牌**，选择**撤销…**，然后选择**撤销**以确认。所有使用该令牌的脚本或客户端都会立即停止工作。

创建、轮换和撤销令牌的操作都会记录在[审计日志](/docs/teams/audit-log)中。

## 添加 webhook

Webhook 会将 Livespace 的事件发送到你指定的地址。这些事件与[审计日志](/docs/teams/audit-log)中的记录相同。

1. 在设置 › **API 访问**的 **Webhook** 下，选择**添加 Webhook**。
2. 输入**名称**和 **URL**。请使用可公开访问的 HTTPS URL。
3. 在**事件**下，留空可接收所有事件，也可以列出操作和范围，例如 `member.added` 或 `sharing.*`。
4. 选择**添加**。
5. 在**复制签名密钥**下，复制密钥。密钥只会在此时显示一次。

如果 Dvina 提示 **Dvina 无法访问此地址**，请使用可公开访问的 HTTPS URL。

### 验证每个请求的签名

Dvina 以 JSON 格式批量发送事件，并为每个请求签名。使用签名密钥验证请求是否来自 Dvina：

- 每个请求都包含一个 `X-Dvina-Signature` 标头，格式为 `t=<timestamp>,v1=<signature>`。
- 签名使用你的签名密钥，对时间戳、一个句点和请求正文依次拼接后的内容进行 HMAC-SHA256 运算，并以十六进制表示。
- 自行计算签名并进行比较。如果请求的签名不匹配或时间戳过旧，请拒绝该请求。

## 查看或更改 webhook

你的 webhook 列在 **Webhook** 下，并显示各自的状态：**已开启**、**已暂停**或**发送失败**。选择一个 webhook 查看详情。

- **更改 webhook**：编辑其**名称**、**URL** 或**事件**，然后选择**保存**。
- **暂停 webhook**：关闭**发送事件**。再次开启即可恢复发送。
- **查看运行情况**：查看其**状态**和**已发送**的事件数量。发送失败的 webhook 会显示**最近一次错误**。Dvina 会持续重试，并在审计日志中记录失败情况。
- **更改密钥**：选择**新建签名密钥…**，然后确认。请求会立即使用新密钥签名，因此请立即更新接收端。
- **移除 webhook**：选择**删除…**，然后选择**删除**以确认。此后将不再向其发送任何内容。

## 相关内容

- [通过 MCP 在其他应用中使用 Dvina](/docs/dvina-mcp/overview)
- [使用审计日志](/docs/teams/audit-log)
- [团队概览](/docs/teams/overview)
