如何在RubyOnRails中集成SoundCloud?

时间:2014-03-20 05:45:24

标签: ruby-on-rails ruby ruby-on-rails-3 sdk soundcloud

我是RubyOnRails和SoundCloud的新手。

我想在我的ruby on rails应用程序中集成SoundCloud API。

为此,我在SoundCloud注册了,我得到了ClientID和ClientSecret。 我还从this链接下载了SDK。

现在我已将 lib spec 目录中的文件和文件夹复制到我的应用程序li​​b和spec目录中。我还在Gemfile中添加了 gem'soundcloud'

在此之后,我在My Interactor中制作了简单的代码(从doc复制) -

# register a client with YOUR_CLIENT_ID as client_id_
client = SoundCloud.new(:client_id => YOUR_CLIENT_ID)
# get 10 hottest tracks
tracks = client.get('/tracks', :limit => 10, :order => 'hotness')
# print each link
tracks.each do |track|
  puts track.permalink_url
end

但是我在这里得到了错误 -

uninitialized constant MyApp::Interactors::MyInteractor::MyAction::SoundCloud

我按照APIDoc的步骤进行操作。是否有任何分步示例将SoundCloud集成到RubyOnRails中以便我可以关注?

请帮我解决此错误并将SoundCloud集成到RubyOnRail中。

MyInteracor.rb

module MyApp
  module Interactors
    module MyInteractor

      class MyAction < Struct.new(:user, :params)

        def run
          # SoundCloud
          # register a client with YOUR_CLIENT_ID as client_id_
          client = SoundCloud.new(:client_id => 'my-client-id')
          # get 10 hottest tracks
          tracks = client.get('/tracks', :limit => 10, :order => 'hotness')
          # print each link
          tracks.each do |track|
            puts track.permalink_url
          end

        end

      end      
    end
  end
end

2 个答案:

答案 0 :(得分:2)

soundcloud github页面中有一个拼写错误更改了一行:

client = SoundCloud.new(:client_id => 'my-client-id')

client = Soundcloud.new(:client_id => 'my-client-id')

[注意Soundcloud中的小写c]

答案 1 :(得分:0)

此外,您需要使用SoundCloud API的客户端密钥来验证您的身份。

也许把客户端方法放在你的client_id,client_secret和重定向uri值的控制器或帮助器中的client = SoundCloud.new(your-client-id,your-secret-key-your-redirect-uri)中受.env文件保护。

我想通过省略你的redirect_uri和客户端秘密,你可能会在MyInteractor.rb中收到此错误

希望这有帮助