Spotify API队列方法返回503服务不可用错误

鹰一

我正在使用我在Ruby on Rails中开发的Web应用程序使用Spotify开发人员API。为此,我使用了一个名为rspotify的宝石我对其进行了少许修改,以添加使Spotify API提供的歌曲排队的功能。这是Spotify开发人员提供的API文档:https : //developer.spotify.com/console/post-queue/

这是来自rspotify的原始代码,带有所有现有的(正在运行的)调用(例如播放歌曲):https : //github.com/guilhermesad/rspotify/blob/master/lib/rspotify/player.rb

这是我添加的代码:

def queue(device_id = nil, uri)
  url = "me/player/queue?uri=#{uri}"
  url = device_id.nil? ? url : "#{url}?device_id=#{device_id}"

  User.oauth_put(@user.id, url, {})
end

不幸的是,所有方法都行得通,但这一方法却行不通。这是发生错误的呼叫示例(控制台中的ruby呼叫摘录):

> me = RSpotify::User.new(hash)
> player = RSpotify::Player.new(me)
> track = RSpotify::Track.search('Know')[0]
>
> player.play_track(track.uri)
 => nil
> player.queue(track.uri)
warning: Overriding "Content-Type" header "application/json" with "application/x-www-form-urlencoded" due to payload
Traceback (most recent call last):
        1: from (irb):82
RestClient::ServiceUnavailable (503 Service Unavailable)

请注意,对方法play_track的调用工作正常。这里只有player.queue是个问题。

我希望有人能帮助我。

提前致谢

鹰一

问题解决了。

问题来自使用PUT方法而不是POST的事实。这是固定代码:

def queue(device_id = nil, uri)
  url = "me/player/queue?uri=#{uri}"
  url = device_id.nil? ? url : "#{url}&device_id=#{device_id}"
  User.oauth_post(@user.id, url, {})
end

希望可以节省一些时间

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章