Oracle Linux终端获取Spotipy重定向URL及OAuth问题求助
解决方案
一、解决Spotipy无浏览器授权问题
方案1:本地生成缓存文件传到虚拟机
- 在有浏览器的本地电脑上,安装同版本的spotipy,配置和虚拟机完全一致的
client_id、client_secret、redirect_uri(必须和Spotify开发者控制台设置的一致) - 运行脚本触发授权流程,完成后本地用户目录会生成
.cache文件 - 将该
.cache文件通过scp或其他方式传到Oracle Linux虚拟机的用户主目录下,脚本再次运行时会自动读取缓存,无需重复授权
方案2:手动获取授权code完成认证
- 在本地浏览器构造并打开授权URL,替换成你的实际参数:
(https://accounts.spotify.com/authorize?client_id=你的CLIENT_ID&response_type=code&redirect_uri=你的REDIRECT_URI&scope=脚本所需权限scope要和脚本中定义的一致,比如user-read-private user-top-read,多个权限用空格分隔) - 授权成功后,浏览器会跳转到你设置的
redirect_uri,URL中会携带code参数(格式如https://example.com/?code=abc123xyz),复制这个code值 - 修改虚拟机上的脚本,手动传入code获取token:
执行后会自动生成缓存文件,后续运行无需再输入codeimport spotipy from spotipy.oauth2 import SpotifyOAuth # 替换为你的实际参数 sp_oauth = SpotifyOAuth( client_id="你的CLIENT_ID", client_secret="你的CLIENT_SECRET", redirect_uri="你的REDIRECT_URI", scope="脚本所需权限" ) code = input("输入获取到的授权code: ") token_info = sp_oauth.get_access_token(code) sp = spotipy.Spotify(auth=token_info['access_token']) # 原有脚本逻辑继续执行
二、解决tcpflow安装失败问题
Oracle Linux 8默认软件源不包含tcpflow,需先启用EPEL源:
- 安装EPEL源:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm - 安装tcpflow:
sudo dnf install tcpflow
内容的提问来源于stack exchange,提问作者HappyLemon
相关产品推荐
相关产品推荐

