2016-06-29 5 views
0

Ich versuche, Spotify SDK auf einer Android-App zu implementieren, wenn ich auf den Button die Spotify-Aktivität startet gut, aber wenn ich versuche, loggen sich nichts passiert und es meldet mich ein Unexpected token error, ich der exakt gleichen Code wie in den Spotify-Tutorials verwendet, hoffen, dass SieAndroid Spotify SDK Anmeldefehler Unerwartete Token

06-29 13:40:36.677 4708-4708/com.app.project.silverbars I/chromium: [INFO:async_pixel_transfer_manager_android.cc(60)] Async pixel transfers not supported 
06-29 13:40:36.789 4708-4708/com.app.project.silverbars I/chromium: [INFO:async_pixel_transfer_manager_android.cc(60)] Async pixel transfers not supported 
06-29 13:40:37.505 4708-4708/com.app.project.silverbars D/dalvikvm: GC_FOR_ALLOC freed 1600K, 15% free 9975K/11700K, paused 6ms, total 6ms 
06-29 13:41:02.605 4708-4708/com.app.project.silverbars I/chromium: [INFO:CONSOLE(6)] "SyntaxError: Unexpected token I 
                     at Object.parse (native) 
                     at Y (https://d2d1dxiu3v1f2i.cloudfront.net/19b92cb/js/index.js:5:6501) 
                     at xt (https://d2d1dxiu3v1f2i.cloudfront.net/19b92cb/js/index.js:6:14454) 
                     at https://d2d1dxiu3v1f2i.cloudfront.net/19b92cb/js/index.js:6:14923 
                     at i (https://d2d1dxiu3v1f2i.cloudfront.net/19b92cb/js/index.js:5:1297) 
                     at Tt (https://d2d1dxiu3v1f2i.cloudfront.net/19b92cb/js/index.js:6:14933) 
                     at o (https://d2d1dxiu3v1f2i.cloudfront.net/19b92cb/js/index.js:6:15632) 
                     at s (https://d2d1dxiu3v1f2i.cloudfront.net/19b92cb/js/index.js:7:2578) 
                     at https://d2d1dxiu3v1f2i.cloudfront.net/19b92cb/js/index.js:7:2750 
                     at f.$eval (https://d2d1dxiu3v1f2i.cloudfront.net/19b92cb/js/index.js:7:10267)", source: https://d2d1dxiu3v1f2i.cloudfront.net/19b92cb/js/index.js (6) 

SpotifyActivity helfen:

public class SpotifyMusic extends AppCompatActivity implements 
     PlayerNotificationCallback, ConnectionStateCallback { 

    // TODO: Replace with your client ID 
    private static final String CLIENT_ID = "b51d25ed8e514fa5927c028d5827a358"; 
    // TODO: Replace with your redirect URI 
    private static final String REDIRECT_URI = "yourcustomprotocol://callback"; 

    // Request code that will be passed together with authentication result to the onAuthenticationResult callback 
    // Can be any integer 
    private static final int REQUEST_CODE = 1337; 

    private Player mPlayer; 

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

     AuthenticationRequest.Builder builder = 
       new AuthenticationRequest.Builder(CLIENT_ID, AuthenticationResponse.Type.TOKEN, REDIRECT_URI); 
     builder.setScopes(new String[]{"user-read-private", "streaming"}); 
     AuthenticationRequest request = builder.build(); 

     AuthenticationClient.openLoginActivity(this, REQUEST_CODE, request); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
     super.onActivityResult(requestCode, resultCode, intent); 

     // Check if result comes from the correct activity 
     if (requestCode == REQUEST_CODE) { 
      AuthenticationResponse response = AuthenticationClient.getResponse(resultCode, intent); 
      if (response.getType() == AuthenticationResponse.Type.TOKEN) { 
       Config playerConfig = new Config(this, response.getAccessToken(), CLIENT_ID); 
       mPlayer = Spotify.getPlayer(playerConfig, this, new Player.InitializationObserver() { 
        @Override 
        public void onInitialized(Player player) { 
         mPlayer.addConnectionStateCallback(SpotifyMusic.this); 
         mPlayer.addPlayerNotificationCallback(SpotifyMusic.this); 
         mPlayer.play("spotify:track:2TpxZ7JUBn3uw46aR7qd6V"); 
        } 

        @Override 
        public void onError(Throwable throwable) { 
         Log.e("MainActivity", "Could not initialize player: " + throwable.getMessage()); 
        } 
       }); 
      } 
     } 
    } 

    @Override 
    public void onLoggedIn() { 
     Log.d("MainActivity", "User logged in"); 
    } 

    @Override 
    public void onLoggedOut() { 
     Log.d("MainActivity", "User logged out"); 
    } 

    @Override 
    public void onLoginFailed(Throwable error) { 
     Log.d("MainActivity", "Login failed"); 
    } 

    @Override 
    public void onTemporaryError() { 
     Log.d("MainActivity", "Temporary error occurred"); 
    } 

    @Override 
    public void onConnectionMessage(String message) { 
     Log.d("MainActivity", "Received connection message: " + message); 
    } 

    @Override 
    public void onPlaybackEvent(EventType eventType, PlayerState playerState) { 
     Log.d("MainActivity", "Playback event received: " + eventType.name()); 
     switch (eventType) { 
      // Handle event type as necessary 
      default: 
       break; 
     } 
    } 

    @Override 
    public void onPlaybackError(ErrorType errorType, String errorDetails) { 
     Log.d("MainActivity", "Playback error received: " + errorType.name()); 
     switch (errorType) { 
      // Handle error type as necessary 
      default: 
       break; 
     } 
    } 

    @Override 
    protected void onDestroy() { 
     // VERY IMPORTANT! This must always be called or else you will leak resources 
     Spotify.destroyPlayer(this); 
     super.onDestroy(); 
    } 
} 
+0

Ihre redirect_uri sollte mit der redirect_uri übereinstimmen, die unter meinen Apps auf der Spotify Developer Console angegeben ist. –

Antwort

1

Was man bekommt, ist eigentlich ein JSON Fehler bei JSON.parse()

Steuert eine SyntaxError-Ausnahme, wenn die zu analysierende Zeichenfolge nicht JSON ist.

Nachdem in Ihrem Code suchen, kann ich sehen, dass Sie nicht gefolgt genau die tutorial.There angegeben

Die fertige Code von MainActivity.java nun wie folgt aussehen sollte, aber mit Ihrem eigenen Client-ID und umleiten URI:

Weil Ihre redirect URI nicht

gesetzt
private static final String REDIRECT_URI = "yourcustomprotocol://callback"; 

Ihr URI kann nicht analysiert werden. Was nicht zufällig mit Ihrem Fehler zusammenhängt, da der Umleitungs-URI im Anmeldeprozess verwendet wird und grundsätzlich der Standort ist, an den der Client nach einer erfolgreichen Kontoautorisierung gesendet wird.

Jetzt darüber, wie Sie es einrichten konnte, konnte ich Ihnen nicht viel helfen, da ich nicht mit dem Spotify SDK gearbeitet haben, aber Sie so etwas wie

private static final String REDIRECT_URI = "http://localhost:PORT_NUMBER://authenticationResponse" 

PORT_NUMBER kann größer sein, etwas nutzen könnten als 1024

Für weitere Informationen könnte diese Frage hilfreich sein: Spotify redirect URI.

Hoffentlich bekommen Sie diese aussortiert.

+0

ich verstehe wirklich nicht die "REDIRECT_URI", warum brauche ich einen localhost für die Analyse der JSON? Muss ich eine andere Datei erstellen, um das Redirect-URI zu analysieren? –

+0

jetzt funktioniert es, vielen Dank –