Многократные области приводят к неудачной авторизации - PullRequest
1 голос
/ 28 марта 2019

Я пытался заставить мою авторизацию работать с использованием потока кода авторизации на примере из Spotipy API, как показано ниже.

import sys
import spotipy
import spotipy.util as util

scope = 'user-library-read playlist-read-private' # or else

if len(sys.argv) > 1:
    username = sys.argv[1]
else:
    print("Usage: %s username" % (sys.argv[0],))
    sys.exit()

token = util.prompt_for_user_token(username, scope)

if token:
    sp = spotipy.Spotify(auth=token)
    results = sp.current_user_saved_tracks()
    for item in results['items']:
        track = item['track']
        print(track['name'] + ' - ' + track['artists'][0]['name'])
else:
    print("Can't get token for", username)

Мне удалось заставить его работать нормально, с областью действия 'user-library-read', но после изменения области или добавления другой я получаю запрос на повторную аутентификацию.Я обычно копирую URL перенаправления в редакторе и получаю следующую ошибку:

Traceback (most recent call last):
  File "C:/Users/Joel/PycharmProjects/untitled1/test.py", line 13, in <module>
    token = util.prompt_for_user_token(username, scope)
  File "C:\Users\Joel\.virtualenvs\untitled1-1cFj5f_i\lib\site-packages\spotipy\util.py", line 86, in prompt_for_user_token
    token_info = sp_oauth.get_access_token(code)
  File "C:\Users\Joel\.virtualenvs\untitled1-1cFj5f_i\lib\site-packages\spotipy\oauth2.py", line 217, in get_access_token
    raise SpotifyOauthError(response.reason)
spotipy.oauth2.SpotifyOauthError: Bad Request

Есть идеи, что я здесь не так делаю?Я в замешательстве, так как он прекрасно работает с этой конкретной областью (и не требует от меня авторизации, поскольку я уже сделал это), но с другими я получаю это.

Кроме того, при запускекод в моем терминале, он также требует авторизации, только я получаю следующую ошибку в браузере: INVALID_CLIENT: Invalid redirect URI

...