gem install rdio_api
Register for developer keys at http://developer.rdio.com/.
All the methods are exactly as in the API docs, camel cased and all the endpoints are also exactly the same.
require "rubygems" require "rdio_api" # Initialize a new Rdio client client = RdioApi.new(:consumer_key => CONSUMER_KEY, :consumer_secret => CONSUMER_SECRET) # Get songs in heavy rotation client.getHeavyRotation(:type => "albums") # Get top playlists client.getTopCharts(:type => "Playlist") # Search for a query and and pass in the type client.search(:query => "michael giacchino", :types => "album") # Get activity stream of a user client.getActivityStream(:user => "s12345", :scope => "user") # Find a user by email address client.findUser(:email => "firstname.lastname@example.org") # Methods that act on behalf of a user require an access token, OmniAuth is best for this # Access token can be set at initialization client = RdioApi.new(:consumer_key => CONSUMER_KEY, :consumer_secret => CONSUMER_SECRET, :access_token => ACCESS_TOKEN) # Access token can also be set at the clien't access_token instance variable client.access_token = ACCESS_TOKEN # Get info about the current user client.currentUser # Add a friend client.addFriend(:user => "s12345") # Create a Playlist client.createPlaylist(:name => "RubyGem", :description => "Testing", :tracks => "t1945474, t3483614")
# Unauthenticated methods, which only require registering for developer keys client.get client.getObjectFromShortCode client.getObjectFromUrl client.getAlbumsForArtist client.getTracksForArtist client.search client.searchSuggestions client.getAlbumsForArtistInCollection client.getAlbumsInCollection client.getArtistsInCollection client.getTracksForAlbumInCollection client.getTracksForArtistInCollection client.getTracksInCollection client.findUser client.userFollowers client.userFollowing client.getActivityStream client.getHeavyRotation client.getNewReleases client.getTopCharts client.getPlaybackToken # Authenticated methods, which require an access token , obtained with user permission client.addToCollection client.removeFromCollection client.setAvailableOffline client.addToPlaylist client.createPlaylist client.deletePlaylist client.getPlaylists client.removeFromPlaylist client.setPlaylistCollaborating client.setPlaylistCollaborationMode client.setPlaylistFields client.setPlaylistOrder client.addFriend client.currentUser client.removeFriend
- Explore moving methods from camel case to snake case and update tests accordingly
- OAuth flow
- More tests for methods and for each endpoints
- Test and Support multiple Rubies