You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spotify API持续弹出"Passed URL contains no parameter"错误求助

Spotify Tekore 授权报错与代码修复方案

问题总结

使用Python 3.9 + Tekore 4.5.0对接Spotify API时,授权后粘贴重定向URI触发错误,授权信息未保存,且播放操作无法执行。已在Spotify开发者控制台添加多个重定向URI白名单,问题仍存在。

代码中的核心问题

  • 逻辑顺序错误:首次运行时tekore.cfg文件尚未生成,直接调用tk.config_from_file会抛出文件不存在的异常。
  • 未定义变量:代码中直接使用album变量,但未提前获取或定义,触发NameError。
  • 重定向URI使用错误:授权后需要粘贴完整的跳转后的URI(包含code参数),而非仅原重定向地址。
  • 令牌混用:初始创建的spotify实例使用客户端令牌,无用户播放权限;获取用户令牌后未重新绑定到spotify实例,导致播放操作失败。
  • 作用域过度请求:tk.scope.every包含大量不必要权限,部分权限需Spotify审核,易引发授权异常。

修正后的代码

import tekore as tk

# 填入你的Spotify开发者信息
client_id = '你的Client ID'
client_secret = '你的Client Secret'
redirect_uri = 'https://youtube.com'  # 确保已在开发者控制台添加此URI

# 仅请求必要的权限,比如播放控制
required_scopes = tk.scope.playback_modify + tk.scope.playback_read + tk.scope.user_read_private

try:
    # 尝试从配置文件读取刷新令牌,实现自动刷新
    conf = tk.config_from_file('tekore.cfg', return_refresh=True)
    user_token = tk.refresh_user_token(client_id, client_secret, conf[3])
except FileNotFoundError:
    # 首次运行,引导用户授权
    user_token = tk.prompt_for_user_token(
        client_id,
        client_secret,
        redirect_uri,
        scope=required_scopes
    )
    # 保存授权信息到配置文件
    conf = (client_id, client_secret, redirect_uri, user_token.refresh_token)
    tk.config_to_file('tekore.cfg', conf)

# 使用用户令牌初始化Spotify实例
spotify = tk.Spotify(user_token)

# 示例:获取用户最近播放的专辑(替换为你的业务逻辑)
try:
    recent = spotify.current_user_recently_played(limit=1)
    if recent.items:
        album = recent.items[0].track.album
        print(f"当前专辑:{album.name}")
        for track in album.tracks.items:
            print(track.track_number, track.name)
except tk.HTTPError as e:
    print(f"API请求错误:{e}")

# 播放指定曲目(确保设备已登录Spotify且处于活跃状态)
try:
    spotify.playback_start_tracks(['2Gt7fjNlx901pPRkvBiNBZ'])
    print("播放已启动")
except tk.HTTPError as e:
    print(f"播放失败:{e}")

关键修复点说明

  • 授权流程优化:先尝试读取配置文件,不存在再引导授权,避免首次运行报错。
  • 权限最小化:仅请求播放相关的必要权限,降低授权失败概率。
  • 令牌正确绑定:用用户令牌初始化spotify实例,确保拥有用户级操作权限。
  • 错误捕获:添加try-except块处理API请求异常,便于排查问题。
  • 播放参数修正:playback_start_tracks接受曲目ID列表,无需携带?si=xxx参数。

额外注意事项

  • 授权时需复制浏览器地址栏中完整的跳转URL(包含code参数)粘贴到终端,而非仅原重定向URI。
  • 确保Spotify开发者控制台中,重定向URI与代码中完全一致(包括协议、域名,无多余空格)。
  • 播放操作需要目标设备已登录对应Spotify账户,且处于在线/活跃状态。

内容的提问来源于stack exchange,提问作者Keamon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 20:05:25