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

调用Spotify API刷新令牌时持续返回unsupported_grant_type错误求助

问题排查与修复

核心问题

你存在两个关键错误:

  1. 请求头声明Content-Type: application/x-www-form-urlencoded,但请求体却用.to_json转成了JSON格式,Spotify令牌接口无法解析这种格式的请求体,导致识别不到grant_type参数。
  2. 常规刷新令牌请求需要携带client_secret参数(除非采用PKCE授权流程),当前代码缺少该参数。

修正后的代码

@response = HTTParty.post("https://accounts.spotify.com/api/token",
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
      },
      body: {
        grant_type: 'refresh_token',
        refresh_token: ENV['REFRESH_TOKEN'],
        client_id: ENV['CLIENT_ID'],
        client_secret: ENV['CLIENT_SECRET'] # 常规流程必填参数
      }
      # 移除.to_json,HTTParty会自动将哈希编码为x-www-form-urlencoded格式
)

补充说明

  • 若你的应用采用PKCE授权流程,则不需要client_secret,但仍需确保请求体为表单格式而非JSON。
  • 验证环境变量REFRESH_TOKEN、CLIENT_ID、CLIENT_SECRET是否正确加载,避免因变量为空导致参数缺失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 11:45:55