如何在Postman中获取Spotify个人用户访问令牌?
嘿,我来帮你搞定在Postman里获取Spotify个人用户访问令牌的事儿!先给你捋清楚你之前踩的坑:你试的客户端凭证流(client_credentials)是用来获取应用自身的访问令牌的,它和任何用户账号都不绑定,只能访问Spotify的公开数据(比如公开专辑、歌手信息),根本没法拿到你的个人播放列表、收藏这类私密数据——而你要的是个人用户访问令牌,得换下面的方案。
这个是Spotify官方推荐的用户级授权方式,只需要第一次手动登录授权一次,之后就能用刷新令牌自动获取新的访问令牌,不用再手动操作。步骤如下:
1. 先配置Spotify应用的重定向URI
登录你的Spotify开发者后台,找到创建好的应用,点击「编辑设置」,在「重定向URI」里添加:https://oauth.pstmn.io/v1/callback,保存设置。
2. 在Postman里发起授权请求拿授权码
- 打开Postman,新建一个GET请求,URL填:
https://accounts.spotify.com/authorize - 切换到「Params」标签,添加以下参数:
client_id: 你的应用专属client_idresponse_type: 固定填coderedirect_uri: 填刚才加的https://oauth.pstmn.io/v1/callback(必须和后台设置完全一致)scope: 填你需要的权限,比如user-read-private user-read-email playlist-read-private(根据你的需求选,比如要改播放列表就加playlist-modify-public这类权限)show_dialog: 可选填false,这样下次授权不会弹出确认框,默认是true
发送这个请求后,Postman会自动跳转到Spotify的登录页面,输入你的账号密码并授权应用。授权成功后,Postman会捕获重定向回来的code参数(你可以在回调页面里看到这个码)。
3. 用授权码兑换访问令牌和刷新令牌
新建一个POST请求,URL填:https://accounts.spotify.com/api/token
- 切换到「Headers」标签,添加:
Content-Type:application/x-www-form-urlencoded
- 切换到「Body」标签,选择「x-www-form-urlencoded」,填入以下内容:
grant_type: 固定填authorization_codecode: 刚才拿到的授权码redirect_uri: 还是https://oauth.pstmn.io/v1/callbackclient_id: 你的应用client_idclient_secret: 你的应用client_secret
发送请求后,你会收到包含以下字段的响应:
access_token: 这就是你要的个人用户访问令牌,有效期1小时refresh_token: 刷新令牌,用来获取新的access_token,只要你不取消应用授权,它就一直有效
4. 自动刷新令牌(无需手动登录)
当access_token过期后,不用再重新授权,直接用refresh_token换就行:
- 新建一个POST请求,URL还是
https://accounts.spotify.com/api/token - Headers同样设置
Content-Type: application/x-www-form-urlencoded - Body里填:
grant_type: 固定填refresh_tokenrefresh_token: 你之前拿到的那个刷新令牌client_id: 你的应用client_idclient_secret: 你的应用client_secret
发送请求就能拿到新的access_token,全程不用手动登录,完美解决你的需求!
如果你觉得上面的步骤有点繁琐,Postman自带了OAuth 2.0授权工具,操作更简单:
- 打开你需要用令牌的请求,切换到「Authorization」标签页
- 类型选择「OAuth 2.0」,然后点击「Get New Access Token」
- 在弹出的窗口里填写:
- Token Name: 随便起个名字(比如「Spotify个人令牌」)
- Grant Type: 选择「Authorization Code」
- Callback URL:
https://oauth.pstmn.io/v1/callback(和后台设置一致) - Auth URL:
https://accounts.spotify.com/authorize - Access Token URL:
https://accounts.spotify.com/api/token - Client ID: 你的应用client_id
- Client Secret: 你的应用client_secret
- Scope: 填你需要的权限(比如
user-read-private playlist-read-private) - Client Authentication: 选择「Send as Basic Auth header」
点击「Request Token」,会弹出Spotify登录页面,登录授权后,Postman会自动获取access_token,并且直接把令牌附加到你的请求里,后续测试直接用就行。不过这个令牌有效期只有1小时,过期后需要重新点击「Get New Access Token」再授权一次。
如果你只是好奇之前的请求为啥失败,可能的原因有这几个:
- Basic Auth编码错误:
Authorization: Basic xxx里的xxx是client_id:client_secret的Base64编码,要注意中间是英文冒号,不要加空格,编码要正确 - 没设置正确的Content-Type:客户端凭证流的POST请求必须设置
Content-Type: application/x-www-form-urlencoded - 网络问题:懂的都懂,可能需要科学上网
但再次提醒,这个流只能拿应用级令牌,没法访问个人数据,所以如果你的需求是个人用户令牌,直接忽略这个流就行。
内容的提问来源于stack exchange,提问作者Solid T.

