Deepu
Deepu

Reputation: 2616

How to integrate SoundCloud in Ruby on Rails?

I am new to RubyOnRails and SoundCloud.

I want to integrate SoundCloud API in my ruby on rails application.

For this I have registered on SoundCloud And I got the ClientID and ClientSecret. Also I have downloaded the SDK.

Now I have copied the files and folders from lib and spec directory to my applications lib and spec directory. Also I have added gem 'soundcloud' in the Gemfile.

After this I made simple code (copied from doc) in My Interactor:

# 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

But here I'm getting the error -

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

I followed the steps from APIDoc. Is there any step by step example for integrating SoundCloud in Ruby on Rails so that I can follow?

How can I resolve this error?

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

Upvotes: 2

Views: 1509

Answers (2)

Scott Stern
Scott Stern

Reputation: 5

Also you are going to need your client secret for SoundCloud's API to verify you.

Perhaps put client method and in it have client = SoundCloud.new(your-client-id,your-secret-key-your-redirect-uri) in a controller or helper with your client_id, client_secret, and redirect uri values protected in a .env file.

I think by leaving out your redirect_uri and client secret you might be getting this error in MyInteractor.rb

Hope this helps

Upvotes: 0

ste
ste

Reputation: 411

There's a typo in the soundcloud github page change the line:

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

to

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

[notice the lowercase c in Soundcloud]

Upvotes: 3

Related Questions