Spotify Web API 技术求助:如何正确调用接口播放播放列表
解决Spotify API播放播放列表时的400错误问题
哦,这个问题我之前踩过坑!你遇到的Unsupported uri kind: playlist_v2错误,核心原因是用错了请求参数字段:
Spotify的/me/player/play接口里,uris字段是专门用来传入单首或多首曲目的URI的,而播放列表、专辑这类属于「播放上下文」,需要用context_uri字段来指定,绝对不能把播放列表的URI塞到uris数组里。
修正后的代码
只需要把你请求体里的uris字段换成context_uri就行,修改后的play函数如下:
const play = ({ context_uri, playerInstance: { _options: { getOAuthToken, id }, }, }) => { getOAuthToken((access_token) => { fetch( `https://api.spotify.com/v1/me/player/play?device_id=${device_id}`, { method: "PUT", // 关键修改:用context_uri代替uris字段 body: JSON.stringify({ context_uri, position_ms: 0 // 可选:设置从播放列表开头开始播放 }), headers: { "Content-Type": "application/json", Authorization: `Bearer ${access_token}`, }, } ); }); };
额外实用技巧
如果你想从播放列表的某首特定曲目开始播放,可以添加offset参数:
body: JSON.stringify({ context_uri: "spotify:playlist:37i9dQZF1EIZKYrELNKNNT", offset: { "uri": "spotify:track:72boGlgSwUK01n44O2tOCv" }, // 指定从这首曲目启动 position_ms: 0 })
权限检查提醒
别忘了确认你的OAuth Token已经申请了以下必要权限:
streaming:允许使用Web Playback SDK播放音乐user-modify-playback-state:允许修改播放状态(比如启动播放)user-read-playback-state:允许读取播放状态信息
缺少这些权限的话,就算参数正确也会请求失败哦!
内容的提问来源于stack exchange,提问作者Marek42
相关产品推荐
相关产品推荐

