我一直在尝试使用授权代码流以及来自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