无法在 Spotipy 中获取新令牌
Posted
技术标签:
【中文标题】无法在 Spotipy 中获取新令牌【英文标题】:Can't get new token in Spotipy 【发布时间】:2021-03-14 16:07:15 【问题描述】:大约一个月前,我在玩图书馆,所有这些都按计划进行。现在我想再次播放它,但在尝试请求热门曲目时出现以下错误:
spotipy.exceptions.SpotifyException:http 状态:400,代码:-1 - 无法刷新令牌:代码:400 原因:错误请求,原因: '授权':'基本 Y2Y2NGFiNDY2ZDI0NDIyMzgzMjRhMjI0NTQxZDkzOGQ6MmJmMTQ5MTgxYmIxNDczZDg5MTAwOTEwYzkzOWRkZjU='
我尝试撤销我帐户的权限,希望它会提示新的授权请求,但它没有。它甚至没有向我显示我必须授予访问我帐户权限的页面。如何获得新令牌?
注意:我知道这不是使用您的秘密的安全方法,也不是请求范围的好方法,但我只是在玩这个库,并没有任何发布代码的意图。
代码:
import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
from spotipy.oauth2 import SpotifyOAuth
cid= "cid_here"
secret= "secret_here"
client_credentials_manager = SpotifyClientCredentials(client_id=cid, client_secret=secret)
scopeFull = "ugc-image-upload user-read-recently-played user-top-read user-read-playback-position user-read-playback-state user-modify-playback-state user-read-currently-playing app-remote-control streaming playlist-modify-public playlist-modify-private playlist-read-private playlist-read-collaborative user-follow-modify user-follow-read user-library-modify user-library-read"
scopeRead = "user-read-recently-played user-top-read user-read-playback-position user-read-playback-state user-read-currently-playing playlist-modify-public playlist-read-private playlist-read-collaborative user-follow-read user-library-read "
scopePlay = "app-remote-control streaming "
ranges = ['short_term', 'medium_term', 'long_term']
sp = spotipy.Spotify(auth_manager=SpotifyOAuth(client_id=cid, client_secret=secret,redirect_uri="https://google.com/",scope=scopeRead + scopePlay))
for sp_range in ['short_term', 'medium_term', 'long_term']:
print("range:", sp_range)
results = sp.current_user_top_tracks(time_range=sp_range, limit=10)
for i, track in enumerate(results['items']):
print("||", i + 1, track['name'], "-", track['popularity'])
print()
【问题讨论】:
【参考方案1】:您能否检查一下您是否拥有正确的 client_id 和/或 client_secret。
我已经使用我的运行它并且工作正常,但是,当我故意让 client_id 或 client_secret 错误时,它会引发完全相同的错误。
也许它正在缓存错误的凭据?取消缓存的一种简单方法是更改范围(即删除一个,然后尝试,之后可以添加回来)。
【讨论】:
以上是关于无法在 Spotipy 中获取新令牌的主要内容,如果未能解决你的问题,请参考以下文章
Spotify 在服务器上获取访问令牌 - Spotify API 有那么糟糕吗?
Spotipy client_credential_manager 未提供令牌