2017-02-04 7 views
0

허락을 받아 페이스 북 로그인을 구현하십시오, 그 시간은 무한 루프를 수행했기 때문에 왜, 나는 이해할 수 없습니다. 내 페이스 북의 devloper 측면에 주어진 단계에 따라 구현, 내 코드는 아래 주어집니다.Android Svk 로그인, 무한 루프, 해결 방법?

mFacebookCallbackManager = CallbackManager.Factory.create(); 
fbLoginButton = (LoginButton) findViewById(R.id.fbLoginButton); 
fbLoginButton.setPublishPermissions(PrefrennceList.FB_PUBLISH_PERMISSION); 

fbLoginButton.registerCallback(mFacebookCallbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 

      AccessToken accessToken = loginResult.getAccessToken(); 

      Utility.storeString(mPreferences, PrefrennceList.FB_ACCESSTOKEN, loginResult.getAccessToken().getToken()); 
      Utility.storeString(mPreferences, PrefrennceList.FB_USER_ID, loginResult.getAccessToken().getUserId()); 

      LoginManager.getInstance().logInWithReadPermissions(SocialLoginActivity.this, PrefrennceList.FB_READ_PERMISSION); 

      return; 
     } 

     @Override 
     public void onCancel() { 

     } 

     @Override 
     public void onError(FacebookException error) { 
      error.printStackTrace(); 
     } 
    }); 


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

} 

답변

0

당신은 onSuccess() 콜백 내부 logInWithReadPermissions() 방법을 추가했습니다. 그것을 제거하고 그것을 아래와 같이 앞에 더한다.

mFacebookCallbackManager = CallbackManager.Factory.create(); 
fbLoginButton = (LoginButton) findViewById(R.id.fbLoginButton); 
fbLoginButton.setPublishPermissions(PrefrennceList.FB_PUBLISH_PERMISSION); 

LoginManager.getInstance().logInWithReadPermissions(SocialLoginActivity.this, PrefrennceList.FB_READ_PERMISSION); 

fbLoginButton.registerCallback(mFacebookCallbackManager, new FacebookCallback<LoginResult>() { 
    @Override 
    public void onSuccess(LoginResult loginResult) { 

     AccessToken accessToken = loginResult.getAccessToken(); 

     Utility.storeString(mPreferences, PrefrennceList.FB_ACCESSTOKEN, loginResult.getAccessToken().getToken()); 
     Utility.storeString(mPreferences, PrefrennceList.FB_USER_ID, loginResult.getAccessToken().getUserId()) 
     return; 
    } 

    @Override 
    public void onCancel() { 

    } 

    @Override 
    public void onError(FacebookException error) { 
     error.printStackTrace(); 
    } 
}); 


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

}