Spotify API 队列方法返回 503 服务不可用错误
Spotify API queue method returning 503 Service Unavailable error
我正在使用 Spotify 开发人员 API 来自我在 Ruby 上 Rails 开发的网络应用程序。
为此,我使用了一个名为 rspotify 的 gem。
我稍微修改了它以添加对 Spotify API 提供的歌曲进行排队的功能。
这是来自 Spotify Dev 的 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
希望它能为其他人节省一些时间
我正在使用 Spotify 开发人员 API 来自我在 Ruby 上 Rails 开发的网络应用程序。 为此,我使用了一个名为 rspotify 的 gem。 我稍微修改了它以添加对 Spotify API 提供的歌曲进行排队的功能。 这是来自 Spotify Dev 的 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
希望它能为其他人节省一些时间