I'm making an Android app witch uses the spotify remote SDK. But it gives an error when connecting to the spotify server. The code is the same as the code of the example project of Spotify included with the SDK. I changed the client id en redirect uri values to mine but it gives the authentication error. My client id and redirect uri work because I'm making the same app in swift, were everything works fine.
Does anyone know how to solve this?
I'm using release 0.6.2
I tried to implement the authentication SDK but the error stays the same.
Thank you in advance!
onConnecting();
connect(false);
}
public void onConnectAndAuthorizedClicked(View view) {
onConnecting();
connect(true);
}
private void connect(boolean showAuthView) {
SpotifyAppRemote.disconnect(mSpotifyAppRemote);
SpotifyAppRemote.connect(this, new ConnectionParams.Builder(CLIENT_ID)
.setRedirectUri(REDIRECT_URI)
.showAuthView(showAuthView)
.build(),
new Connector.ConnectionListener() {
@Override
public void onConnected(SpotifyAppRemote spotifyAppRemote) {
mSpotifyAppRemote = spotifyAppRemote;
Log.d("MainActivity", "Connected! Yay!");
// Now you can start interacting with App Remote
mSpotifyAppRemote = spotifyAppRemote;
SpotifyAppRemoteActivity.this.onConnected();
}
@Override
public void onFailure(Throwable throwable) {
Log.e("MainActivity", throwable.getMessage(), throwable);
// Something went wrong when attempting to connect! Handle errors here
}
});
SpotifyAppRemote.connect(
getApplication(),
new ConnectionParams.Builder(CLIENT_ID)
.setRedirectUri(REDIRECT_URI)
.showAuthView(showAuthView)
.build(),
new Connector.ConnectionListener() {
@Override
public void onConnected(SpotifyAppRemote spotifyAppRemote) {
}
@Override
public void onFailure(Throwable error) {
if (error instanceof SpotifyRemoteServiceException) {
if (error.getCause() instanceof SecurityException) {
logError(error, "SecurityException");
} else if (error.getCause() instanceof IllegalStateException) {
logError(error, "IllegalStateException");
}
} else if (error instanceof NotLoggedInException) {
logError(error, "NotLoggedInException");
} else if (error instanceof AuthenticationFailedException) {
logError(error, "AuthenticationFailedException");
} else if (error instanceof CouldNotFindSpotifyApp) {
logError(error, "CouldNotFindSpotifyApp");
} else if (error instanceof LoggedOutException) {
logError(error, "LoggedOutException");
} else if (error instanceof OfflineModeException) {
logError(error, "OfflineModeException");
} else if (error instanceof UserNotAuthorizedException) {
logError(error, "UserNotAuthorizedException");
} else if (error instanceof UnsupportedFeatureVersionException) {
logError(error, "UnsupportedFeatureVersionException");
} else if (error instanceof SpotifyDisconnectedException) {
logError(error, "SpotifyDisconnectedException");
} else if (error instanceof SpotifyConnectionTerminatedException) {
logError(error, "SpotifyConnectionTerminatedException");
} else {
logError(error, String.format("Connection failed: %s", error));
}
SpotifyAppRemoteActivity.this.onDisconnected();
}
});
}```
D/SPOTIFY_APP_REMOTE(24936): Message from Spotify: [3,{"message":"com.spotify.mobile.android.spotlets.appprotocol.model.AppProtocol$Message"},"com.spotify.error.client_authentication_failed"]
D/SPOTIFY_APP_REMOTE(24936): Connection failed.
D/SPOTIFY_APP_REMOTE(24936): com.spotify.protocol.client.error.RemoteClientException: {"message":"com.spotify.mobile.android.spotlets.appprotocol.model.AppProtocol$Message"}
D/SPOTIFY_APP_REMOTE(24936): at com.spotify.protocol.client.RemoteWampClient.getRemoteClientException(RemoteWampClient.java:139)
D/SPOTIFY_APP_REMOTE(24936): at com.spotify.protocol.client.RemoteWampClient.access$200(RemoteWampClient.java:16)
D/SPOTIFY_APP_REMOTE(24936): at com.spotify.protocol.client.RemoteWampClient$1.onAbort(RemoteWampClient.java:44)
D/SPOTIFY_APP_REMOTE(24936): at com.spotify.protocol.client.WampRouterImpl.routeAbort(WampRouterImpl.java:100)
D/SPOTIFY_APP_REMOTE(24936): at com.spotify.protocol.client.WampRouterImpl.route(WampRouterImpl.java:26)
D/SPOTIFY_APP_REMOTE(24936): at com.spotify.protocol.client.AppProtocolCommunicator.onData(AppProtocolCommunicator.java:78)
D/SPOTIFY_APP_REMOTE(24936): at com.spotify.android.appremote.internal.RemoteServiceIo.handleMessage(RemoteServiceIo.java:113)
D/SPOTIFY_APP_REMOTE(24936): at com.spotify.android.appremote.internal.RemoteServiceIo.access$000(RemoteServiceIo.java:47)
D/SPOTIFY_APP_REMOTE(24936): at com.spotify.android.appremote.internal.RemoteServiceIo$IncomingHandler.handleMessage(RemoteServiceIo.java:91)
D/SPOTIFY_APP_REMOTE(24936): at android.os.Handler.dispatchMessage(Handler.java:106)
D/SPOTIFY_APP_REMOTE(24936): at android.os.Looper.loop(Looper.java:214)
D/SPOTIFY_APP_REMOTE(24936): at android.app.ActivityThread.main(ActivityThread.java:7073)
D/SPOTIFY_APP_REMOTE(24936): at java.lang.reflect.Method.invoke(Native Method)
D/SPOTIFY_APP_REMOTE(24936): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
D/SPOTIFY_APP_REMOTE(24936): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)
D/SPOTIFY_APP_REMOTE(24936): Stop remote client
E/SpotifyAppRemoteActivity(24936): AuthenticationFailedException
E/SpotifyAppRemoteActivity(24936): com.spotify.android.appremote.api.error.AuthenticationFailedException: {"message":"com.spotify.mobile.android.spotlets.appprotocol.model.AppProtocol$Message"}
E/SpotifyAppRemoteActivity(24936): at com.spotify.android.appremote.api.LocalConnector.asAppRemoteException(LocalConnector.java:131)
E/SpotifyAppRemoteActivity(24936): at com.spotify.android.appremote.api.LocalConnector.access$000(LocalConnector.java:35)
E/SpotifyAppRemoteActivity(24936): at com.spotify.android.appremote.api.LocalConnector$1.onConnectionFailed(LocalConnector.java:111)
E/SpotifyAppRemoteActivity(24936): at com.spotify.android.appremote.internal.SdkRemoteClientConnector$ConnectionTask.onPostExecute(SdkRemoteClientConnector.java:142)
E/SpotifyAppRemoteActivity(24936): at com.spotify.android.appremote.internal.SdkRemoteClientConnector$ConnectionTask.onPostExecute(SdkRemoteClientConnector.java:75)
E/SpotifyAppRemoteActivity(24936): at android.os.AsyncTask.finish(AsyncTask.java:695)
E/SpotifyAppRemoteActivity(24936): at android.os.AsyncTask.access$600(AsyncTask.java:180)
E/SpotifyAppRemoteActivity(24936): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:712)
E/SpotifyAppRemoteActivity(24936): at android.os.Handler.dispatchMessage(Handler.java:106)
E/SpotifyAppRemoteActivity(24936): at android.os.Looper.loop(Looper.java:214)
E/SpotifyAppRemoteActivity(24936): at android.app.ActivityThread.main(ActivityThread.java:7073)
E/SpotifyAppRemoteActivity(24936): at java.lang.reflect.Method.invoke(Native Method)
E/SpotifyAppRemoteActivity(24936): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/SpotifyAppRemoteActivity(24936): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)
E/SpotifyAppRemoteActivity(24936): Caused by: com.spotify.protocol.client.error.RemoteClientException: {"message":"com.spotify.mobile.android.spotlets.appprotocol.model.AppProtocol$Message"}
E/SpotifyAppRemoteActivity(24936): at com.spotify.protocol.client.RemoteWampClient.getRemoteClientException(RemoteWampClient.java:139)
E/SpotifyAppRemoteActivity(24936): at com.spotify.protocol.client.RemoteWampClient.access$200(RemoteWampClient.java:16)
E/SpotifyAppRemoteActivity(24936): at com.spotify.protocol.client.RemoteWampClient$1.onAbort(RemoteWampClient.java:44)
E/SpotifyAppRemoteActivity(24936): at com.spotify.protocol.client.WampRouterImpl.routeAbort(WampRouterImpl.java:100)
E/SpotifyAppRemoteActivity(24936): at com.spotify.protocol.client.WampRouterImpl.route(WampRouterImpl.java:26)
E/SpotifyAppRemoteActivity(24936): at com.spotify.protocol.client.AppProtocolCommunicator.onData(AppProtocolCommunicator.java:78)
E/SpotifyAppRemoteActivity(24936): at com.spotify.android.appremote.internal.RemoteServiceIo.handleMessage(RemoteServiceIo.java:113)
E/SpotifyAppRemoteActivity(24936): at com.spotify.android.appremote.internal.RemoteServiceIo.access$000(RemoteServiceIo.java:47)
E/SpotifyAppRemoteActivity(24936): at com.spotify.android.appremote.internal.RemoteServiceIo$IncomingHandler.handleMessage(RemoteServiceIo.java:91)
E/SpotifyAppRemoteActivity(24936): ... 6 more
I had similar problem, here for more details.
You need to register your application to spotify dashboard. Go spotify dashboard and edit your project.
As mentioned here in offical document.
You also should add your package name and app fingerprint as they’re used to verify the identity of your application.
You can generate / get your fingerprint as referred in documentation.
MAC/Linux
keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
Windows
keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
When you have your fingerprint, you need to register to spotify dashboard and it should be okay.