在使用 Axios 调用 Spotify API 时遇到错误的请求(如 400 Bad Request
或 401 Unauthorized
),即使已正确使用 AccessToken
,可能涉及以下原因和解决方案:
1. 基础概念
- AccessToken:OAuth 2.0 的令牌,用于授权访问 Spotify API。需通过
Authorization: Bearer <token>
头传递。 - 常见错误:
400 Bad Request
:请求格式或参数错误。401 Unauthorized
:Token 无效、过期或权限不足。
2. 常见原因与解决方案
(1) Token 未正确传递
- 问题:未在请求头中正确附加 Token 或格式错误。
- 修复示例:
- 修复示例:
(2) Token 过期或无效
- 检查点:
- Token 有效期通常为 1 小时,过期需通过
refresh_token
获取新 Token。 - 确保 Token 未因多次使用或泄露被撤销。
- 刷新 Token 示例:
- 刷新 Token 示例:
(3) 请求参数或方法错误
- 问题:如 HTTP 方法错误(如误用
POST
代替 GET
)或参数格式不符。 - 示例修复:
- 示例修复:
(4) 权限不足
(5) 网络或 CORS 问题
- 后端调用:确保从服务器发起请求(浏览器端可能因 CORS 拦截)。
- 代理配置(如适用):
- 代理配置(如适用):
3. 调试建议
- 日志记录:打印完整的请求和错误响应:
- 日志记录:打印完整的请求和错误响应:
- 验证 Token:通过工具(如 Postman)直接测试 Token 有效性。
- 查阅文档:确认端点、参数和权限要求符合 Spotify API 文档。
4. 其他注意事项
- 速率限制:频繁请求可能触发
429 Too Many Requests
,需实现重试机制。 - Base64 编码:
clientId:clientSecret
需正确编码用于 Token 刷新。
通过以上步骤排查,通常可解决大部分 AccessToken 相关的 API 调用问题。