Spotify API player/currently-playing接口未返回device字段问题求助
解决Spotify player/currently-playing接口device字段缺失问题
问题分析
调用Spotify的player/currently-playing接口(请求地址CURRENTLYPLAYING + "?market=US")时,代码尝试访问data.device.volume_percent却报错device is undefined,尽管API文档说明响应应包含device字段。
可能原因及解决方案
- 当前无活跃播放内容:当用户没有正在播放的曲目时,API响应不会返回
device字段。需先判断字段是否存在再访问:app.get("/api", (req, res) => { callEndpoint("get", CURRENTLYPLAYING + "?market=US", null, (response) => { let data = response.data let newData = {} // 先检查device是否存在 newData.volume = data.device ? data.device.volume_percent : null; res.status(200).json(newData) }) }) - 权限未正确配置:获取设备信息需要
user-read-playback-state权限,若应用未申请该权限,API会省略device相关字段。检查并补充权限后重新授权。 - 播放状态为暂停/停止:当
data.is_playing为false时,API通常不会返回device字段。可添加状态判断逻辑:app.get("/api", (req, res) => { callEndpoint("get", CURRENTLYPLAYING + "?market=US", null, (response) => { let data = response.data let newData = {} if (data.is_playing && data.device) { newData.volume = data.device.volume_percent; } else { newData.volume = null; newData.message = "当前无活跃播放内容"; } res.status(200).json(newData) }) })
内容的提问来源于stack exchange,提问作者David T
相关产品推荐
相关产品推荐

