# 配置外部服务密钥

当应用通过后端调用外部服务时，可以在“项目设置 → 应用密钥”保存所需的 API Key 或 Token。例如，邮件发送功能可能需要名为 MAIL_API_KEY 的凭证。预览环境和正式环境分别配置。

## 准备服务凭证和密钥名称

先明确应用要接入的服务及用途，并确认应用已实现相应的后端调用。可以在 AI 对话中询问：

> 这个应用的邮件发送功能需要配置哪些密钥？请告诉我每个密钥的名称、用途，以及配置完成后从哪里试用。

到对应服务的控制台创建或取得凭证，并按用途选择访问权限。把真实凭证填写在“密钥值”中；与 AI 讨论接入方式时，提供服务名称、密钥名称和需求即可。

如果应用还没有这个功能，先[提出修改需求](https://ideamade.ai/zh/help/request-changes)，接入后再配置密钥。

## 在预览环境添加密钥

1. 在 Builder 中点击项目名称旁的“项目设置”。
2. 找到“应用密钥”，将这个区域内的“环境”设为“预览环境”。
3. 输入应用需要的“密钥名称”和从服务提供方取得的“密钥值”。
4. 点击“保存密钥”。

按应用要求填写密钥名称，例如 MAIL_API_KEY，确保与后端使用的名称一致。

[![应用密钥表单选择预览环境，名称为MAIL_API_KEY，密钥值以隐藏字符显示](https://ideamade.ai/help/zh/setup-secret-form.jpg)](https://ideamade.ai/help/zh/setup-secret-form.jpg)

_图：演示使用无效的示例值。实际配置时填写对应服务提供的凭证。_

页面显示“修改已保存”，下方列表出现密钥名称。输入框会清空，列表仅显示名称。

[![保存后密钥名称出现在列表中，原密钥值未回显](https://ideamade.ai/help/zh/setup-secret-saved.jpg)](https://ideamade.ai/help/zh/setup-secret-saved.jpg)

_图：保存后的 MAIL_API_KEY。重新打开设置可以查看已配置的名称。_

## 配置正式环境并检查功能

在“应用密钥”的“环境”中选择“正式环境”。如果尚未配置，该环境会显示空列表。按正式服务账号的要求，填写密钥名称和正式凭证，再保存。

[![切换到正式环境后，列表显示该环境尚未配置密钥](https://ideamade.ai/help/zh/setup-secret-production.jpg)](https://ideamade.ai/help/zh/setup-secret-production.jpg)

_图：预览中保存的密钥与正式环境分别管理。_

配置后，在对应环境试用该功能。例如，邮件功能可以向自己的邮箱发送测试邮件，检查是否收到。外部服务可能收取费用，具体以服务提供方为准。

## 替换或删除密钥

需要更新凭证时，选择对应环境，填写同一个密钥名称和新值，再点击“保存密钥”。同名保存会替换该环境中的原值，保存后再次试用相关功能。

准备移除凭证时，点击名称旁的“删除”，在确认窗口核对名称后再确认。

[![删除应用密钥的确认窗口显示MAIL_API_KEY及对依赖功能的影响](https://ideamade.ai/help/zh/setup-secret-delete.jpg)](https://ideamade.ai/help/zh/setup-secret-delete.jpg)

_图：删除后，依赖这个密钥的功能需要重新配置凭证才能继续工作。_

如果要让旧凭证在服务提供方彻底失效，还需要到对应服务的控制台撤销它。怀疑凭证泄露时，应尽快在服务提供方撤销旧值、生成新值，并更新应用配置。

## 常见问题

### 保存后在哪里查看完整密钥？

应用密钥列表只显示名称，保存的值会加密存储。需要找回凭证时，请查看服务提供方的控制台；服务仅允许创建时查看的，可以重新生成，再用同名保存更新配置。

### 为什么提示无法读取或更新密钥？

先确认当前账号有项目写权限。如果仍然报错，联系支持，提供项目名称、所选环境、密钥名称和错误提示即可。

### 预览正常，发布后外部功能失败，先检查什么？

打开“应用密钥”，切换到“正式环境”，核对所需名称是否齐全、凭证是否有效，以及服务账号的权限和额度。随后从正式地址重新执行对应操作，查看实际结果。

## 接下来

- [理解预览数据和正式数据](https://ideamade.ai/zh/help/preview-and-production-data)
- [发布前检查访问权限和关键流程](https://ideamade.ai/zh/help/pre-publish-checks)
