Spotify API调用current_user_recently_played返回空列表求助
问题分析与解决方向
你遇到的返回空items且无total字段的情况,主要有以下几种可能原因:
1. 授权权限缺失
获取用户最近播放记录必须申请user-read-recently-played权限。如果你的授权流程(获取token的环节)没有包含这个scope,Spotify API会静默返回空结果,而非抛出权限错误。
要确认这一点:
- 检查发起授权请求时的scope参数,确保明确包含
user-read-recently-played。比如用Spotipy初始化授权时,要指定scope="user-read-recently-played";原生请求的话,授权URL里的scope参数必须包含该值。 - 解码你的access token(可使用JWT解码工具),查看payload中的
scope字段,确认目标权限存在。
2. 用户无近期播放记录
如果用户在Spotify全渠道(网页端、客户端等)最近没有播放过任何曲目,API会返回空的items数组,此时total字段不会出现——这符合Spotify API的设计逻辑,仅当存在播放记录时才会返回total。
你可以让用户登录Spotify官网,查看「最近播放」列表,确认是否有内容。如果官网也无记录,那API返回空就是正常现象。
3. Token有效性问题
虽然你的get_token函数会刷新过期令牌,但要确保刷新后的令牌依然包含正确的scope。部分情况下,若初始授权的scope不完整,新生成的access token也会缺少对应权限。
排查建议
- 先确认用户的Spotify账号有近期播放记录;
- 检查授权流程的scope配置,确保包含
user-read-recently-played; - 用curl直接测试API端点,排除代码封装的问题:
curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://api.spotify.com/v1/me/player/recently-played
内容的提问来源于stack exchange,提问作者Danny
相关产品推荐
相关产品推荐

