プレイリストに一括して曲を追加しようとしています。私の人生はAPIのドキュメントと私が送信しているものとの違いを見つけることはできませんが、とにかくエラーです。ここで私が使用している関数であり、私はそれを呼んでいる方法:Spotify API:プレイリストにトラックを追加する:JSONの解析エラー
def addToPlaylist(songs, playlistUrl, positions = None):
data = { 'uris': songs }
if position != None:
data.update({ 'position': position })
headers = authHeader.copy()
headers.update({'Content-Type': 'application/json'})
print(headers)
print(json.dumps(data))
req = requests.post(playlistUrl, headers = headers, data = json.dumps(data))
if req.status_code != 201:
print('Error: Request returned status code {}. Returned: {}'.format(req.status_code, req.text))
songs = ["spotify:track:1i1fxkWeaMmKEB4T7zqbzK", "spotify:track:2VKqMKKCFhTPczQb10TMKB", "spotify:track:7Gl9cKtVjRN6KHNMfV1gD3"]
url = "https://api.spotify.com/v1/users/username/playlists/2...Q/tracks"
addToPlaylist(songs, url, 0)
2枚のデバッグプリント()以下を教えてよ:
:{'Accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': 'Bearer BlahblahblA'}
{"position": 0, "uris": ["spotify:track:1i1fxkWeaMmKEB4T7zqbzK", "spotify:track:2VKqMKKCFhTPczQb10TMKB", "spotify:track:7Gl9cKtVjRN6KHNMfV1gD3"]}
エラー出力が私にこのことを伝えます
Error: Request returned status code 400. Returned: {
"error" : {
"status" : 400,
"message" : "Error parsing JSON."
}
}
http://localhost:3001
にURLを変更し、netcatをnc -l -p 3001
で聴いたとき、私は次のリクエスト見ることができます:
POST/HTTP/1.1
Host: 0:3001
Accept: application/json
Connection: keep-alive
User-Agent: python-requests/2.11.1
Accept-Encoding: gzip, deflate
Content-Type: application/json
Authorization: Bearer BlahblahblA
Content-Length: 145
{"position": 0, "uris": ["spotify:track:1i1fxkWeaMmKEB4T7zqbzK", "spotify:track:2VKqMKKCFhTPczQb10TMKB", "spotify:track:7Gl9cKtVjRN6KHNMfV1gD3"]}
Content-Typeヘッダーには言及していませんが、別のリクエスト(再生リストから曲を削除するためのDELETE
)が機能していて、そこにURLを使用していないにもかかわらず、エンコーディング。
最後にthe documentation次のように言及している:
POST https://api.spotify.com/v1/users/{user_id}/playlists/{playlist_id}/tracks
[...]
Content-Type
:URIはリクエストボディに渡された場合以外の場合は無視、必須。リクエストボディのコンテンツタイプ:application/json
[...]
uris
:SpotifyはURI文字列の配列|オプション。追加するSpotifyトラックURIのJSON配列。例:{"uris": ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh", "spotify:track:1301WleyT98MSxVHPZCA6M"]}
私は何か間違っていますか?