首页 > 解决方案 > 如何修复“com.spotify.android.appremote.api.error.AuthenticationFailedException”

问题描述

我正在制作一个使用 Spotify 应用程序远程 SDK 的 Android 应用程序。但是在连接到 Spotify 服务器时会出错。该代码与 SDK 中包含的 Spotify 示例项目的代码相同。我将客户端 ID 和重定向 URI 值更改为我的,但它给出了身份验证错误。

我正在使用版本 0.6.3

先感谢您!

package com.example.geekxy;


import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import com.spotify.android.appremote.api.ConnectionParams;
import com.spotify.android.appremote.api.Connector;
import com.spotify.android.appremote.api.SpotifyAppRemote;


public class LoginSpotify extends AppCompatActivity {

    private static final String CLIENT_ID = "bxxxxxxxxxxxxxxxxxxxxxxxxd7";
    private static final String REDIRECT_URI = "com.example.geekxy://callback";
    private SpotifyAppRemote mSpotifyAppRemote;
    private TextView testo;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login_spotify);
    }


    @Override
    protected void onStart() {

        super.onStart();
        testo = findViewById(R.id.stato);
        ConnectionParams connectionParams = new ConnectionParams.Builder(CLIENT_ID)

                .setRedirectUri(REDIRECT_URI)
                .showAuthView(true)
                .build();
        SpotifyAppRemote.connect(this, connectionParams, new Connector.ConnectionListener() {
            @Override
            public void onConnected(SpotifyAppRemote spotifyAppRemote) {

                mSpotifyAppRemote = spotifyAppRemote;
                Log.d("Main Activity", "Connected!");
                Connected();
            }

            @Override
            public void onFailure(Throwable throwable) {

                Log.e("MyActivity", throwable.getMessage(), throwable);
                testo.setText("NOT WORKS");
            }
        });

    }


    @Override
    protected void onStop() {

        super.onStop();
        SpotifyAppRemote.disconnect(mSpotifyAppRemote);
    }


    private void Connected() {

        mSpotifyAppRemote.getPlayerApi().getPlayerState();
        mSpotifyAppRemote.getPlayerApi().skipNext();
        testo.setText("IT WORKS");
    }

}

E/MyActivity: {"message":"com.spotify.mobile.android.spotlets.appprotocol.model.AppProtocol$Message"} com.spotify.android.appremote.api.error.AuthenticationFailedException: {"message":"com .spotify.mobile.android.spotlets.appprotocol.model.AppProtocol$Message"} 在 com.spotify.android.appremote.api.LocalConnector.asAppRemoteException(LocalConnector.java:131) 在 com.spotify.android.appremote.api。 LocalConnector.access$000(LocalConnector.java:35) at com.spotify.android.appremote.api.LocalConnector$1.onConnectionFailed(LocalConnector.java:111) at com.spotify.android.appremote.internal.SdkRemoteClientConnector$ConnectionTask.onPostExecute( SdkRemoteClientConnector.java:142)在 com.spotify.android.appremote.internal.SdkRemoteClientConnector$ConnectionTask。onPostExecute(SdkRemoteClientConnector.java:75) 在 android.os.AsyncTask.finish(AsyncTask.java:695) 在 android.os.AsyncTask.access$600(AsyncTask.java:180) 在 android.os.AsyncTask$InternalHandler.handleMessage( AsyncTask.java:712) 在 android.os.Handler.dispatchMessage(Handler.java:106) 在 android.os.Looper.loop(Looper.java:214) 在 android.app.ActivityThread.main(ActivityThread.java:7078 ) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit .java:964) 引起:com.spotify.protocol.client.error.RemoteClientException: {"message":"com.spotify.mobile.android.spotlets.appprotocol.model.AppProtocol$Message"com.spotify.protocol.client.RemoteWampClient.getRemoteClientException(RemoteWampClient.java:139) 在 com.spotify.protocol.client.RemoteWampClient.access$200(RemoteWampClient.java:16) 在 com.spotify.protocol.client.RemoteWampClient $1.onAbort(RemoteWampClient.java:44) 在 com.spotify.protocol.client.WampRouterImpl.routeAbort(WampRouterImpl.java:100) 在 com.spotify.protocol.client.WampRouterImpl.route(WampRouterImpl.java:26) 在 com .spotify.protocol.client.AppProtocolCommunicator.onData(AppProtocolCommunicator.java:78) 在 com.spotify.android.appremote.internal.RemoteServiceIo.handleMessage(RemoteServiceIo.java:113) 在 com.spotify.android.appremote.internal.RemoteServiceIo .access$000(RemoteServiceIo.java:47) 在 com.spotify.android.appremote.internal。RemoteServiceIo$IncomingHandler.handleMessage(RemoteServiceIo.java:91) 在 android.os.Handler.dispatchMessage(Handler.java:106) 在 android.os.Looper.loop(Looper.java:214) 在 android.app.ActivityThread.main (ActivityThread.java:7078) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 在 com.android.internal.os .ZygoteInit.main(ZygoteInit.java:964)RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)

标签: javaandroidandroid-studiospotifyspotify-app

解决方案


推荐阅读