Rdio OAuth 1.0a Strategy for OmniAuth 1.0.
Add to your project Gemfile:
gem 'omniauth-rdio'
Read the OmniAuth 1.0 documentation for detailed instructions.
Pass your Rdio Application Key and Secret as arguments when initializing the provider.
For example, if using as middleware in a Rails app, add the following to an initializer:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :rdio, ENV['RDIO_APP_KEY'], ENV['RDIO_APP_SECRET']
end
Example of the provider's Auth Hash Schema
(request.env['omniauth.auth']
):
{
"provider" => "rdio",
"uid" => "aaa...",
"info" => {
"name" => "Gopal Patel",
"nickname" => "nixme",
"first_name" => "Gopal",
"last_name" => "Patel",
"image" => "http://cdn3.rd.io/user/no-user-image-square.jpg",
"urls" => {
"User" => "http://www.rdio.com/people/nixme/",
"Collection" => "http://www.rdio.com/people/nixme/collection/",
"Playlists" => "http://www.rdio.com/people/nixme/playlists/",
"Following" => "http://www.rdio.com/people/nixme/people/following/",
"Followers" => "http://www.rdio.com/people/nixme/people/followers/"
}
},
"credentials" => {
"token" => "123456...", # OAuth access token
"secret" => "abcde..." # OAuth secret
},
"extra" => {
"access_token" => <OAuth::AccessToken>, # OAuth::AccessToken instance for making API requests.
"raw_info" => { # Result of the currentUser Rdio Web Service call.
"followingUrl" => "/people/nixme/people/following/", # Includes all optional User fields
"baseIcon" => "user/no-user-image-square.jpg", # except lastSongPlayed and
"isTrial" => false, # lastSongPlayTime.
"artistCount" => 64,
"heavyRotationKey" => "eee...",
"networkHeavyRotationKey" => "bbb...",
"albumCount" => 114,
"libraryVersion" => 406,
"trackCount" => 1391,
"type" => "s",
"username" => "nixme",
"collectionUrl" => "/people/nixme/collection/",
"playlistsUrl" => "/people/nixme/playlists/",
"key" => "aaa...",
"collectionKey" => "ccc...",
"followersUrl" => "/people/nixme/people/followers/",
"icon" => "http://cdn3.rd.io/user/no-user-image-square.jpg",
"displayName" => "Gopal Patel",
"isUnlimited" => true,
"firstName" => "Gopal",
"url" => "/people/nixme/",
"gender" => "m",
"lastName" => "Patel",
"isSubscriber" => true
}
}
}
Patches and bug reports are welcome. Just send a pull request or file an issue. Project changelog.