Spotify Apps API:图书馆类不会返回用户播放列表

Posted

技术标签:

【中文标题】Spotify Apps API:图书馆类不会返回用户播放列表【英文标题】:Spotify Apps API: Library-class won't return users Playlists 【发布时间】:2012-01-27 11:55:06 【问题描述】:

我正在尝试获取包含用户库 (http://developer.spotify.com/download/spotify-apps-api/reference/dcdebc652c.html) 中所有播放列表的数组。

其他类属性(专辑、艺术家、starredPlaylist、曲目)没有问题,但不知何故“播放列表”属性无法使用

var allPlaylists = models.library.playlists;

var allArtists= models.library.artists;

工作得很好!(都使用 document.write(var))

有什么建议吗?谢谢!

【问题讨论】:

“行不通”是什么意思?它是在您的控制台中引发错误还是空数组或 null 或什么? 抱歉,document.write 返回“未定义” 【参考方案1】:

这是官方的回答:

很遗憾,出于隐私原因,在 Spotify Apps API 中获取用户播放列表的功能已被删除。这是在最后一刻完成的,文档没有及时更新。我们将很快发布反映这一变化的新版本的客户端和文档。

【讨论】:

这里有什么更新:通过 api 返回用户的播放列表?好久不见!【参考方案2】:

我看起来 sp.core.library.getPlaylists 在 . 0.8.0–701-gc2d793a

【讨论】:

【参考方案3】:

我认为这是 API 的错误。

sp = getSpotifyAPI(1);
models = sp.require('sp://import/scripts/api/models')
models.library.playlists;

> TypeError: Cannot read property 'length' of undefined

try  models.library.playlists  catch(err)  console.log(err.stack) 

> TypeError: Cannot read property 'length' of undefined
    at map (sp:216:20)
    at Library.<anonymous> (eval at evalModule (sp:55:46))
    at unknown source
    at Object._evaluateOn (unknown source)
    at Object._evaluateAndWrap (unknown source)
    at Object.evaluate (unknown source)

挖掘 models.js 文件,我们看到 Library 使用 sp.core.library.getPlaylists() 来获取播放列表,它应该返回一个数组但返回 undefined:

sp.core.library.getPlaylists()

> undefined

sp.core.library.getPlaylists

> function getPlaylists()  [native code] 

由于 sp.core.library.getPlaylists 是本机代码,我无法深入兔子洞以查看它在做什么。因此,除非 Spotify 开发人员说这是所需的行为,否则我的结论是这是一个错误。

【讨论】:

谢谢伙计!我看起来 sp.core.library.getPlaylists 在 . 0.8.0–701-gc2d793a 但没有提及原因:S 我们的 API 不支持获取用户的播放列表。

以上是关于Spotify Apps API:图书馆类不会返回用户播放列表的主要内容,如果未能解决你的问题,请参考以下文章

Spotify Apps API:获取其他用户的播放列表

使用 Spotify Apps API 的空或未定义的艺术家图像

无法在 Spotify Apps API 中获取艺术家的专辑

Spotify Apps Api - 创建播放列表的“分享”按钮

通过 Google Apps 脚本进行 Spotify API 授权

使用 Spotify Apps API 从给定播放列表中的特定曲目开始