# API密钥配置指南 ## 错误代码 -2015 解决方案 如果遇到 `APIError(code=-2015): Invalid API-key, IP, or permissions for action` 错误,请按照以下步骤检查: ## 1. 检查API密钥状态 ### 登录币安账户 1. 访问 [币安官网](https://www.binance.com) 或 [币安测试网](https://testnet.binancefuture.com) 2. 进入 **账户** → **API管理** ### 检查API密钥 - ✅ API密钥状态是否为 **启用** - ✅ API密钥是否已过期 - ✅ API密钥是否被删除 ## 2. 检查API密钥权限 ### 必需权限 确保API密钥已启用以下权限: - ✅ **启用读取** - 必须启用 - ✅ **启用合约交易** - 必须启用(这是关键!) - ❌ **启用提币** - **不要启用**(安全考虑) ### 权限设置步骤 1. 在API管理页面,点击你的API密钥 2. 在权限设置中,确保勾选: - [x] 启用读取 - [x] 启用合约交易 - [ ] 启用提币(不要勾选) ## 3. 检查IP白名单设置 ### 如果设置了IP限制 1. 在API管理页面查看 **IP访问限制** 2. 如果设置了IP白名单,需要添加当前服务器的IP地址 3. 或者选择 **无限制**(不推荐,安全性较低) ### 获取服务器IP ```bash # 在服务器上执行 curl ifconfig.me # 或 curl ipinfo.io/ip ``` ## 4. 检查测试网/生产网配置 ### 测试网 vs 生产网 - **测试网**:用于测试,不涉及真实资金 - **生产网**:真实交易环境 ### 配置匹配 确保 `config.py` 中的配置与你的API密钥环境匹配: ```python # 如果API密钥来自测试网 USE_TESTNET = True # 如果API密钥来自生产网 USE_TESTNET = False ``` ### 如何判断 - 测试网API密钥:在 [testnet.binancefuture.com](https://testnet.binancefuture.com) 创建 - 生产网API密钥:在 [www.binance.com](https://www.binance.com) 创建 ## 5. 验证API密钥 ### 测试连接 运行程序后,查看日志输出: ``` ✓ 币安客户端连接成功 (测试网: False) ✓ API密钥权限验证通过 ``` 如果看到这些信息,说明API密钥配置正确。 ## 6. 常见问题排查 ### 问题1:连接成功但无法获取余额 **原因**:API密钥没有合约交易权限 **解决**:在币安API管理中启用"合约交易"权限 ### 问题2:IP地址错误 **原因**:服务器IP不在白名单中 **解决**:添加服务器IP到白名单,或取消IP限制 ### 问题3:测试网/生产网不匹配 **原因**:USE_TESTNET 配置与API密钥环境不一致 **解决**:检查并修改 config.py 中的 USE_TESTNET 设置 ### 问题4:API密钥已过期 **原因**:API密钥设置了过期时间 **解决**:创建新的API密钥或延长过期时间 ## 7. 安全建议 1. **不要启用提币权限** - 即使API密钥泄露,也无法提走资金 2. **使用IP白名单** - 限制API密钥只能从特定IP访问 3. **定期更换API密钥** - 建议每3-6个月更换一次 4. **不要在代码中硬编码密钥** - 使用环境变量 5. **不要将API密钥提交到Git** - 确保 .gitignore 包含 config.py ## 8. 测试网API密钥获取 ### 步骤 1. 访问 [币安测试网](https://testnet.binancefuture.com) 2. 使用测试网账号登录(如果没有,先注册) 3. 进入 API管理 创建测试网API密钥 4. 在 config.py 中设置 `USE_TESTNET = True` ### 测试网特点 - 免费使用 - 虚拟资金 - 适合测试和开发 - 不影响真实账户 ## 9. 生产网API密钥获取 ### 步骤 1. 访问 [币安官网](https://www.binance.com) 2. 登录你的账户 3. 进入 **账户** → **API管理** → **创建API** 4. 选择权限:**启用读取** + **启用合约交易** 5. 设置IP白名单(推荐) 6. 在 config.py 中设置 `USE_TESTNET = False` ## 10. 验证配置 运行程序后,应该看到: ``` ✓ 币安客户端连接成功 (测试网: False) ✓ API密钥权限验证通过 账户余额: 总余额 1000.00 USDT, 可用余额 1000.00 USDT ``` 如果看到错误,请根据错误信息参考上述解决方案。