Как загрузить свое обложку плейлиста с помощью Spotify API - PullRequest
0 голосов
/ 23 января 2020

Я в частном node.js проекте. На сервере должна быть конечная точка для обновления изображения обложки определенного c списка воспроизведения. Внутри этой конечной точки у меня есть этот код:


let playlistID = '7fOfY.......G5RFK3z';              // ID of already created playlist
let imgFile = '/9j/4AAQSkZJRg.......AgICAg';         // data:image/jpeg;base64
let spotifyAccessToken = 'DHdhw3.......DHdfLS8';     // valid access token


let options = {
    url: 'https://api.spotify.com/v1/playlists/' + playlistID + '/images',
    headers: {
         'Authorization': 'Bearer ' + spotifyAccessToken,
         'Content-Type': 'image/jpeg'
    },
    body: imgFile
}

request.put(options,(error, response) => {

    if(response.statusCode === 202) {
         console.log('Upload cover');
    } else {
         console.log(JSON.stringify(response));
    }

В терминале всегда происходит сбой, и в Spotify нет изображения обложки. Кто-нибудь знает, что не так? Что я могу сделать, чтобы решить эту проблему? https://developer.spotify.com/documentation/web-api/reference/playlists/upload-custom-playlist-cover/

РЕДАКТИРОВАТЬ:

Объект ответа выглядит следующим образом:

{"statusCode":400,
    "body":{
        "error": {
            "status": 400,
            "message": "Bad request."
            }
        },
    "headers":{
        "content-type": "application/json; charset=utf-8",
        "cache-control": "private",
        "max-age=0",
        "access-control-allow-origin":"*",
        "access-control-allow-headers":"Accept, App-Platform, Authorization, Content-Type, Origin, Retry-After, Spotify-App-Version, X-Cloud-Trace-Context",
        "access-control-allow-methods":"GET, POST, OPTIONS, PUT, DELETE, PATCH",
        "access-control-allow-credentials":"true",
        "access-control-max-age":"604800",
        "content-length":"72",
        "date":"Fri, 24 Jan 2020 09:29:49 GMT",
        "via":"1.1 google",
        "alt-svc":"clear",
        "connection":"close"
        },
    "request":{
        "uri":{
            "protocol":"https:",
            "slashes":true,
            "auth":null,
            "host":"api.spotify.com",
            "port":443,
            "hostname":"api.spotify.com",
            "hash":null,
            "search":null,
            "query":null,
            "pathname":"/v1/playlists/7fOf.....FK3z/images",
            "path":"/v1/playlists/7fOf.....FK3z/images",
            "href":"https://api.spotify.com/v1/playlists/7fOf.....FK3z/images"
        },
    "method":"PUT",
    "headers":{
        "Authorization":"Bearer BQDBBS2T......CZVtcz70",
        "Content-Type":"image/jpeg",
        "content-length":0}
    }
}
...