通过用户名从 Spotify 获取公共播放列表

Posted

技术标签:

【中文标题】通过用户名从 Spotify 获取公共播放列表【英文标题】:Get public playlist from Spotify by username 【发布时间】:2016-03-11 04:21:44 【问题描述】:

我会尝试获取 Spotify 用户的公开播放列表,但我总是收到 401 错误。


    "error": 
        "status": 401,
        "message": "This request requires authentication."
    

我使用这个网址https://api.spotify.com/v1/users/id/playlists,其中 id 必须是来自 Spotify 的用户名。我有一个 oAuth 密钥。我用这个 javascript 请求 API,JQuery 代码:

$.ajax(
    url: "https://api.spotify.com/v1/users/" + $("#username").val() + "/playlists",
    Authorization: "Bearer my_OAuth_Token",
    Host: "api.spotify.com",
    Accept: "application/json",
    type: "GET",
    success: function (data)

        var count = data.items.length;

        for (var i = 0; i < aantal; i++) 
            $("#playlists").append('<option>' + data.items[i].name + '</option>');
        
    ,
    error: function (data) 
        $("#playlists").append("<option>error</option>");
    
);

【问题讨论】:

【参考方案1】:

您需要将AuthorizationHost 值作为标头发送,而不是作为选项对象的属性。另请注意,accepts 应为小写。试试这个:

$.ajax(
    url: "https://api.spotify.com/v1/users/" + $("#username").val() + "/playlists",
    headers: 
        Authorization: "Bearer my_OAuth_Token",
        Host: "api.spotify.com"
    ,
    accepts: "application/json",
    type: "GET",
    success: function (data)     
        var count = data.items.length;    
        for (var i = 0; i < aantal; i++) 
            $("#playlists").append('<option>' + data.items[i].name + '</option>');
        
    ,
    error: function (data) 
        $("#playlists").append("<option>error</option>");
    
);

您也可以省略 Host 标头,因为我认为它不是必需的。

【讨论】:

以上是关于通过用户名从 Spotify 获取公共播放列表的主要内容,如果未能解决你的问题,请参考以下文章

通过 Spotify API 从播放列表中获取 ID

spotify api 获取用户的播放列表

Spotipy - 从公共播放列表访问曲目,无需身份验证

如何使用 spotify web api 获取用户的播放列表列表?

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

如何从 Spotify 播放列表中获取数据