通过用户名从 Spotify 获取 public 个播放列表

Get public playlist from Spotify by username

我将尝试获取 Spotify 用户的 public 播放列表,但我总是遇到 401 错误。

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

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

$.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>");
    }
});

您需要将 AuthorizationHost 值作为 header 发送,而不是作为选项 object 的属性发送。还要注意 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 header,因为我认为这不是必需的。