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

如何使用Ruby+RestClient实现Spotify授权并解决运行报错问题

问题解决步骤

1 修复依赖兼容报错

你当前的报错核心是Ruby 3.0版本和低版本mime-types依赖语法不兼容,你安装的rest-client 2.1.0默认依赖的mime-types 2.99.3版本使用了_1/_2/_3作为普通变量名,而Ruby 2.7之后将这几个标识符作为内置编号参数保留,所以触发语法错误,后续的rest-client加载失败也是这个前置错误导致的。
修复操作:

  • 执行命令卸载旧版本冲突包:gem uninstall mime-types -v 2.99.3
  • 执行命令安装兼容Ruby3的依赖版本:gem install mime-types -v 3.4.1,随后执行gem install rest-client重新安装rest-client
  • 如果你使用Gemfile管理项目依赖,直接在Gemfile中添加以下配置后执行bundle install即可:
gem 'mime-types', '~> 3.4', '>= 3.4.1'
gem 'rest-client', '~> 2.1'

2 正确实现Spotify OAuth2授权流程

Spotify采用OAuth2授权码模式完成账号授权,直接GET授权链接无法直接拿到授权结果,需按以下步骤实现:

2.1 前置准备

在Spotify开发者后台完成应用创建,记录你的CLIENT_ID、CLIENT_SECRET,并配置和代码中完全一致的redirect_uri回调地址,同时按需申请对应接口权限的scope值。

2.2 生成用户授权链接

require 'rest-client'
require 'json'
require 'uri'

CLIENT_ID = "你自己的CLIENT_ID"
REDIRECT_URI = "你在开发者后台配置的回调地址"
SCOPE = "user-read-private user-read-email" # 可根据你需要拉取的数据调整scope范围

# 拼接授权链接
auth_params = {
  client_id: CLIENT_ID,
  response_type: 'code',
  redirect_uri: REDIRECT_URI,
  scope: SCOPE,
  show_dialog: true
}
auth_url = "https://accounts.spotify.com/authorize?#{URI.encode_www_form(auth_params)}"
puts "请访问以下链接完成账号授权:#{auth_url}"

2.3 用授权码换取access_token

用户完成授权后,Spotify会自动跳转到你配置的redirect_uri,并在地址参数中携带code授权码,拿到授权码后调用接口换取接口调用凭证:

CLIENT_SECRET = "你自己的CLIENT_SECRET"
code = "回调地址中获取到的code参数值"

token_params = {
  grant_type: 'authorization_code',
  code: code,
  redirect_uri: REDIRECT_URI,
  client_id: CLIENT_ID,
  client_secret: CLIENT_SECRET
}

token_resp = RestClient.post('https://accounts.spotify.com/api/token', token_params)
token_data = JSON.parse(token_resp.body)
access_token = token_data['access_token']
refresh_token = token_data['refresh_token']

2.4 调用接口拉取个人数据

拿到access_token后即可携带凭证调用Spotify开放接口,示例拉取当前账号基础信息:

user_resp = RestClient.get(
  'https://api.spotify.com/v1/me',
  { Authorization: "Bearer #{access_token}" }
)
puts JSON.parse(user_resp.body)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:27:04