【问题标题】:Getting undefined method when trying to use a ruby wrapper for the Spotify Web API尝试为 Spotify Web API 使用 ruby​​ 包装器时获取未定义的方法
【发布时间】:2017-07-07 17:25:38
【问题描述】:

我在搞乱RSpotify,它是 Spotify API 的 ruby​​ 包装器。

我添加了一个表单并发送了搜索结果参数以在 API 中查找,但我收到以下错误:

NoMethodError: undefined method `empty?' for nil:NilClass
from /Users/user/.rvm/gems/ruby-2.3.1/gems/rspotify-1.21.0/lib/rspotify/connection.rb:71:in `send_request'

我仔细检查并重新安装了 gem,将其添加到 gemfile 和所有内容中。我似乎无法弄清楚为什么它不起作用。

这是代码(几周前我写的时候它还在工作):

post '/music' do
  search =  RSpotify::Artist.search(params[:search])
    @artist = search.first
    @image = @artist.images.first["url"]
    @top_tracks = @artist.top_tracks(:US)
    albums = @artist.albums
    @titles = []
    albums.each { |album| @titles << album.name }
    @titles.uniq!
    @related_artists = @artist.related_artists
    erb :'/music/show'
end

【问题讨论】:

标签: ruby api spotify


【解决方案1】:

您似乎使用的是过时的版本(根据您的输出判断为 1.21.0)。当前版本是 1.22.1(参见https://rubygems.org/gems/rspotify)=> 可以尝试更新。

另外,就像 Jeff 所说:显然有一个开放的 GitHub 问题表明当您未正确验证身份时会出现此问题。因此,也许检查您的凭据是否 1) 已设置并且 2) 仍然有效。检查您的凭据的一种简单方法是直接将它们与 API 一起使用(请参阅http://www.compciv.org/recipes/data/touring-the-spotify-api/)=> 如果它们在那里无法正常工作,则可能不是代码而是您的凭据无法正常工作。

【讨论】:

  • 嘿,我实际上使用的是旧版本。看来您现在需要像您说的那样进行身份验证?我最初是在避免这种情况并使用简单的搜索 -> 结果表单,以便任何人都可以从艺术家/乐队那里获得信息。希望他们能尽快解决问题。
  • 我已经测试了几个 URL,所有的 URL 都没有经过身份验证就失败了。所以我的假设是你实际上需要一个 API 令牌。也许 Spotify 最近改变了这一点?我个人不知道,我只是想帮忙。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多