Я довольно новичок в Python 3 и Flask, и в настоящее время я создаю простое веб-приложение для использования данных из Spotify API.
Поток аутентификации OAuth 2.0 почти работает, так как явозможность звонить https://accounts.spotify.com/authorize и https://accounts.spotify.com/api/token.
В какой-то момент мне нужно запросить новый доступ и обновить токен:
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))
headers = {"Authorization": "Basic {}".format(encoded_oauth2_tokens)}
post_request = requests.post(SPOTIFY_TOKEN_URL, data=code_payload, headers=headers)
Обратный звонокФункция запроса завершается с ошибкой:
File "app.py", line 52, in callback
encoded_oauth2_tokens = base64.b64encode('{}:{}'.format(CLIENT_ID, CLIENT_SECRET))
File "/usr/lib/python3.6/base64.py", line 58, in b64encode
encoded = binascii.b2a_base64(s, newline=False)
TypeError: a bytes-like object is required, not 'str'
Я понимаю, что строка передается в b64encode()
, но я не уверен, как я могу изменить ее на двоичный (?).
Во время моего исследования большинство подобных ошибок были связаны с открытием файлов, и это не мой сценарий.