我正在制作一个Android应用程序女巫使用spotify远程SDK。但是当连接到spotify服务器时会出现错误。代码与SDK附带的Spotify示例项目的代码相同。我将客户端id en重定向uri值改为it,但它提供了身份验证错误。我的客户端id和重定向uri工作,因为我正在制作相同的应用程序,如果一切正常。
有人知道怎么解决这个问题吗?
我正在使用0.6.2版
我试图实现身份验证SDK,但错误保持不变。
提前谢谢你!
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发布于 2019-09-11 12:49:26
我也有类似的问题,这里有更多的细节。
您需要将应用程序注册到spotify仪表板。去spotify仪表板并编辑你的项目。
正如官方文件中提到的。
您还应该添加包名和应用程序指纹,因为它们用于验证应用程序的身份。
您可以生成/获取文档中提到的指纹。
MAC/Linux
keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore视窗
keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore当你有你的指纹,你需要注册到spotify仪表板,它应该是可以的。
https://stackoverflow.com/questions/57889133
复制相似问题