获取Spotify其他用户最近播放曲目:授权与数据访问疑问
解决Spotify获取用户最近播放曲目的授权与数据访问问题
一、用户如何授予user-read-recently-played权限
- 先在Spotify开发者后台配置好你的应用重定向URI(Redirect URI),必须和后续请求里的URI完全一致。
- 构造授权跳转URL,核心参数包括:
client_id:你的应用Client Keyresponse_type=code:指定授权码模式redirect_uri:后台配置好的重定向地址scope=user-read-recently-played:明确申请的权限state:随机字符串,用于防范CSRF攻击(可选但推荐)
- 引导用户点击这个URL跳转到Spotify的授权页面,用户确认授权后,Spotify会跳回你配置的
redirect_uri,并在URL参数里带上code(授权码)和你之前传的state。 - 用拿到的
code,结合client_id、client_secret、redirect_uri,向Spotify的token接口发送POST请求,获取access_token(访问令牌)、refresh_token(刷新令牌),同时响应里会返回授权用户的id(用户ID)等基本信息。
二、应用内如何访问用户的最近播放数据
- 调用Spotify的
/v1/me/player/recently-played接口,请求头中添加Authorization: Bearer {你的access_token}。 - 接口返回的就是该授权用户的最近播放曲目列表,支持通过
limit参数控制返回条目数量(最多50条),after/before参数按时间范围筛选。 - 当
access_token过期(默认有效期1小时),可以用refresh_token向token接口发送POST请求,获取新的access_token,无需用户再次授权。
三、OAuth模块是否记录已授权用户与用户ID问题
- Spotify的OAuth流程本身不会帮你存储已授权用户信息,你需要自己在应用数据库里保存用户的
id、refresh_token、access_token过期时间等数据,用于后续识别用户和刷新令牌。 - 第一次获取token的响应里就包含用户ID,不需要额外查询;之后每次请求或者刷新token时,都可以通过这个ID关联到对应的用户。
内容的提问来源于stack exchange,提问作者Sam CD
相关产品推荐
相关产品推荐

