如何获取可长期使用的Spotify API OAuth2访问令牌/刷新令牌
关于Spotify OAuth2 Refresh Token的核心问题解答
先明确两个Token的核心分工
- Access Token:这是调用Spotify API的直接“通行证”,有效期只有1小时,过期后就无法用来发起API请求。
- Refresh Token:它的唯一作用就是在Access Token过期时,帮你无需用户再次手动授权就能获取新的Access Token,是实现长期无交互授权的关键。
Refresh Token能不能永久使用?
Spotify的Refresh Token并非绝对永久,但在满足以下条件时,它可以长期有效:
- 你在授权阶段必须添加了
offline_access这个Scope(这是拿到Refresh Token的前提,没有这个权限根本获取不到Refresh Token) - 用户没有主动在Spotify账户设置里撤销你的应用授权
- 用户没有修改Spotify账户密码
- 你的应用没有长时间闲置(实践中只要定期用Refresh Token刷新Access Token,就不会被无故失效)
如果触发了上面任意一种情况,Refresh Token就会失效,这时候你必须重新走授权流程获取新的Refresh Token。
适配你需求的操作流程
你想通过API控制台一次性获取两个Token、实现长期无需重复授权的思路完全可行,具体步骤如下:
- 在Spotify API控制台发起授权请求时,务必勾选
offline_access权限(或者在请求参数里手动添加这个Scope) - 完成账户授权后,用返回的授权码交换得到Access Token和Refresh Token
- 日常调用API使用Access Token,当它过期(可以通过响应里的
expires_in字段判断,默认3600秒),就用Refresh Token调用POST /api/token接口,传入grant_type=refresh_token参数,就能拿到新的Access Token(部分场景会返回新的Refresh Token,建议替换掉旧的) - 只要Refresh Token没失效,这个循环可以一直持续,完全不需要用户再参与授权操作
重要提醒
- 一定要妥善存储Refresh Token,它相当于你的Spotify账户长期授权凭证,泄露后他人可以随意操作你的账户
- 如果某天调用Refresh Token接口返回
invalid_grant错误,就说明Refresh Token已经失效,此时只能重新走授权流程获取新的凭证
内容的提问来源于stack exchange,提问作者crispEtomE
相关产品推荐
相关产品推荐

