# 故障排查指南

## ❌ 错误：CAN_NOT_GET_GATEWAY_SERVER: dynamic use static key

### 错误原因

这个错误表示你的 Agora 项目启用了**安全模式**（需要 Token 认证），但在加入频道时没有提供有效的 Token。

### 解决方案

#### 方案 1：切换到调试模式（推荐用于测试）

1. **登录 Agora Console**
   - 访问 https://console.agora.io
   - 登录你的账号

2. **修改项目设置**
   - 进入"项目管理"
   - 找到你的项目
   - 点击"配置"或"编辑"按钮
   - 找到"鉴权机制"或"App 证书"设置
   - **关闭 App 证书**或选择"调试模式"
   - 保存设置

3. **重新测试**
   - 刷新页面
   - 重新加入房间（Token 留空）

#### 方案 2：使用临时 Token（快速测试）

1. **生成临时 Token**
   - 在 Agora Console 中进入你的项目
   - 点击"生成临时 Token"
   - 输入频道名称（必须与你要加入的频道名称一致）
   - 输入 UID（可以填 0）
   - 点击"生成"
   - 复制生成的 Token

2. **使用 Token**
   - 在登录页面的 Token 输入框中粘贴刚才复制的 Token
   - 确保频道名称与生成 Token 时使用的名称一致
   - 加入房间

**注意：** 临时 Token 有效期为 24 小时

#### 方案 3：部署 Token 服务器（生产环境）

如果你需要在生产环境使用，必须部署 Token 服务器。

详细步骤请参考 [DEPLOYMENT.md](DEPLOYMENT.md) 中的 "Token 服务器部署" 章节。

### 详细步骤截图说明

#### 如何关闭 App 证书（切换到调试模式）

1. 登录 Agora Console
2. 点击左侧菜单"项目管理"
3. 找到你的项目，点击右侧的"配置"按钮
4. 找到"主要证书"或"App 证书"部分
5. 如果显示"已启用"，点击"禁用"按钮
6. 确认禁用操作
7. 等待几秒钟让设置生效

#### 如何生成临时 Token

1. 在项目列表中，点击项目名称进入项目详情
2. 找到"临时 Token 生成器"部分
3. 输入频道名称（例如：room001）
4. 输入 UID（可以填 0，表示由 SDK 自动分配）
5. 点击"生成临时 Token"
6. 复制生成的 Token 字符串

### 常见问题

#### Q1: 我已经关闭了 App 证书，为什么还是报错？

**A:** 设置可能需要几分钟才能生效，请等待 2-3 分钟后重试。如果还是不行，尝试清除浏览器缓存。

#### Q2: 临时 Token 过期了怎么办？

**A:** 临时 Token 有效期为 24 小时。过期后需要重新生成。生产环境建议使用 Token 服务器自动生成。

#### Q3: 频道名称必须一致吗？

**A:** 是的！生成 Token 时使用的频道名称必须与加入频道时使用的名称完全一致（区分大小写）。

#### Q4: 我应该使用哪种方案？

**A:** 
- **测试/开发环境**：使用方案 1（调试模式）最简单
- **演示/短期使用**：使用方案 2（临时 Token）
- **生产环境**：必须使用方案 3（Token 服务器）

### 其他常见错误

#### 错误：INVALID_VENDOR_KEY

**原因：** App ID 无效或格式错误

**解决：** 
1. 检查 App ID 是否正确复制（32位字符）
2. 确保没有多余的空格
3. 确认 App ID 来自正确的项目

#### 错误：INVALID_TOKEN

**原因：** Token 无效、过期或与频道不匹配

**解决：**
1. 重新生成 Token
2. 确保频道名称一致
3. 检查 Token 是否过期

#### 错误：NO_AUTHORIZED

**原因：** 账号权限不足或项目被禁用

**解决：**
1. 检查 Agora 账号状态
2. 确认项目是否被禁用
3. 检查账号余额（如果是付费项目）

### 调试技巧

1. **查看浏览器控制台**
   - 按 F12 打开开发者工具
   - 查看 Console 标签页的错误信息
   - 查看 Network 标签页的网络请求

2. **检查网络连接**
   - 确保能访问 Agora 服务器
   - 检查防火墙设置
   - 尝试使用 VPN（如果在某些地区）

3. **验证配置**
   - App ID 格式正确（32位字符）
   - 频道名称不包含特殊字符
   - Token 格式正确（如果使用）

### 需要帮助？

如果以上方案都无法解决问题，请：

1. 查看 [Agora 官方文档](https://docs.agora.io/cn/video-calling/overview/product-overview?platform=web)
2. 访问 [Agora 开发者社区](https://www.agora.io/cn/community/)
3. 在 [GitHub Issues](https://github.com/AgoraIO/API-Examples-Web/issues) 提问
4. 联系 Agora 技术支持

---

**提示：** 大多数情况下，使用"调试模式"（关闭 App 证书）是最快的解决方案。
