You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 18:22:38