재생 목록에 노래를 대량 추가하려고합니다. 나는 내 인생이 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)
두 디버그 인쇄() 다음 말해 S :
:{'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"]}
콘텐츠 유형 헤더에 언급 된 내용이 아니지만 재생 목록에서 노래를 삭제하는 다른 요청 (DELETE
)이 작동하지만 URL을 사용하지 않아도 본문을 URL 인코딩해야한다고 생각할 수 있습니다. 부호화.
마지막 the documentation 다음과 같이 언급한다 :
POST https://api.spotify.com/v1/users/{user_id}/playlists/{playlist_id}/tracks
[...]
Content-Type
: URI를이 요청 본문에 전달되는 경우, 그렇지 않으면 무시 필요합니다. 요청 본문의 내용 유형 :application/json
[...]
uris
: 스포티 파이 URI 문자열 배열 | 선택 과목. 추가 할 Spotify 트랙 URI의 JSON 배열입니다. 예 :{"uris": ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh", "spotify:track:1301WleyT98MSxVHPZCA6M"]}
내가 잘못하고 있나?