Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

LastFm API binding and connect support using Spring Social. This project adapts LastFm's APi to be pseudo-oauth so it can be used with ProviderSignInController and ConnectController - work in progress

tree: 2c1e416ab2

Fetching latest commit…

Cannot retrieve the latest commit at this time

README
This project is a work in progress with a few methods of the LastFm Api implemented so far. These include:

Retrieving a LastFm user's basic profile info
Retrieving a LastFm user's Loved, Recent, or Top Tracks
Retrieving a LastFm user's friends and neighbours lists 
Retrieving a LastFm user's shouts
Performing a shout
Loving and unloving a track
Performing a basic track search
Updating a LastFm users' now listening status
Simple scrobbling

Currently trialing this implementation on CloudPlaylists.com along with spring-social-soundcloud, to allow
CloudPLaylists users to search for their LastFm loved,recent or top tracks on SoundCloud, and to scrobble tracks with
an identifiable track name and artist name to LastFm.

Method signatures are initial at this stage and support basic operations only (not implementing pagination for example) - these will be updated
in the near future.

Please note that as LastFm's auth scheme is *neither* OAuth1 or OAuth2, there are a few constraints concerning the use 
of this module:

In order to use Spring-Social's existing ProviderSignInController or ConnectController (which require OAuth2 scheme)
the LastFmPseudoOAuth2ConnectionFactory (not the standard LastFmConnectionFactory) 
must be registered with the ConnectionFactoryRegistry *AND* the LastFmPseudoOAuth2Filter must be registered in 
your filter chain in web.xml.

The LastFmPseudoOAuth2ConnectionFactory conforms the LastFmConnectionFactory to OAuth2 spec, and the LastFmPseudoOAuth2Filter
modifies the auth-callback from LastFm to that required by ProviderSignInController or ConnectController.
Something went wrong with that request. Please try again.