request.exceptions.HTTPError: 400 Ошибка клиента: неверный запрос URL: https://accounts.spotify.com/api/token - PullRequest
0 голосов
/ 14 декабря 2018

Я довольно новичок в Python 3 и Flask, и в настоящее время я создаю простое веб-приложение для использования данных из Spotify API.

Поток аутентификации OAuth 2.0 почти работает, так как явозможность вызова https://accounts.spotify.com/authorize:

Во время запроса POST к API я получаю HTTP 400:

authentication_token = request.args['code']
code_payload = {
    "grant_type": "authorization_code",
    "code": str(authentication_token),
    "redirect_uri": REDIRECT_URI
}
encoded_oauth2_tokens = base64.b64encode('{}:{}'.format(CLIENT_ID, CLIENT_SECRET).encode())
headers = {"Authorization": "Basic {}".format(encoded_oauth2_tokens)}
post_request = requests.post(SPOTIFY_TOKEN_URL, data=code_payload, headers=headers)
post_request.raise_for_status()

РЕДАКТИРОВАТЬ: тело ответа:

"GET / HTTP/1.1" 302 - b'{"error":"invalid_client"}'

Не уверен, что не так в запросе.

1 Ответ

0 голосов
/ 15 декабря 2018

Мне удалось исправить проблему с подсказкой из этого вопроса .

Добавление encoded_oauth2_tokens.decode () в заголовок было отсутствующей частью, чтобы сделать действительный запрос к API Spotify.Код выглядит следующим образом:

encoded_oauth2_tokens = base64.b64encode('{}:{}'.format(CLIENT_ID, CLIENT_SECRET).encode())
headers = {"Authorization": "Basic {}".format(encoded_oauth2_tokens.decode())}
...