2016-06-29 3 views
0

Я пытаюсь реализовать Spotify SDK в приложении для Android, когда я нажимаю кнопку, активность Spotify начинается просто отлично, но когда я пытаюсь войти в систему, ничего не происходит, и она регистрирует меня Unexpected token error, я используется один и тот же код, как и в учебники Spotify, надеюсь, что вы можете помочьAndroid Spotify SDK Ошибка входа в систему Неожиданный токен

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:

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

Ваш redirect_uri должен совпадать с redirect_uri, указанным в моих приложениях, на Spotify Developer Console. –

ответ

1

Что вы получаете на самом деле ошибка JSON в JSON.parse()

Выдает исключение SyntaxError, если строка для разбора недействительна JSON.

Посмотрев на свой код, я могу видеть, что вы не следовали именно tutorial.There говорится

Законченный код MainActivity.java должен выглядеть так, но с вашим собственным идентификатором клиента и перенаправлять URI:

Поскольку ваш redirect URI не установлен

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

Ваш URI не может быть разобран. Это не совпадение, связанное с вашей ошибкой, так как URI перенаправления используется в процессе входа в систему и в основном является адресом , на который клиент будет отправлен после успешной авторизации учетной записи.

Теперь о том, как вы могли бы установить его, я не мог помочь вам много, так как я не работал с Spotify SDK, но вы можете использовать что-то вроде

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

PORT_NUMBER может быть что-то большее, чем 1024

Для получения дополнительной информации, этот вопрос может быть полезным: Spotify redirect URI.

Надеюсь, вы получите это разобранное.

+0

Я действительно не понимаю «REDIRECT_URI», почему мне нужен локальный хост для синтаксического анализа json? мне нужно создать еще один файл для анализа перенаправления uri? –

+0

теперь он работает, спасибо большое –

Смежные вопросы