Spotipy重复要求粘贴重定向URL问题求助
解决Spotipy重复授权的问题
你的问题核心是没有配置token缓存机制,导致每次调用API都重新触发授权流程。Spotipy的SpotifyOAuth默认支持token本地缓存,只需添加一个参数就能实现一次授权后无交互运行。
解决步骤
1. 添加缓存路径参数
初始化SpotifyOAuth时,指定cache_path参数,让授权后的token保存到本地文件中。后续运行程序会自动读取缓存的token,无需重复授权。
修改后的代码:
import spotipy from spotipy.oauth2 import SpotifyOAuth from pprint import pprint from time import sleep scope = "user-read-playback-state,user-modify-playback-state" # 添加cache_path参数,指定token缓存文件路径 sp = spotipy.Spotify(auth_manager=SpotifyOAuth( scope=scope, cache_path=".cache" # 缓存文件会保存在当前目录下的.cache文件中 )) # Shows playing devices res = sp.devices() pprint(res) # Change track sp.start_playback(uris=['spotify:track:6gdLoMygLsgktydTQ71b15']) # Change volume sp.volume(100) sleep(2) sp.volume(50) sleep(2) sp.volume(100)
2. 第一次授权后自动复用缓存
- 第一次运行代码时,仍然需要完成浏览器授权流程(粘贴URL到终端),这是唯一一次交互。
- 授权完成后,当前目录会生成
.cache文件,后续运行程序会自动读取该文件中的token,无需再打开浏览器或手动输入。
3. 额外注意事项
- 确保你的
Redirect_URI和Spotify开发者后台中应用设置的完全一致,否则缓存的token会失效。 - 如果需要更换账号或重置授权,直接删除
.cache文件即可重新触发授权流程。
内容的提问来源于stack exchange,提问作者tachophobicat
相关产品推荐
相关产品推荐

