2017-02-04 15 views
0

許可を得てフェイスブックのログインを実装すると、その時間は無限に繰り返され、なぜなら、私は控えめではありません。私はfacebookのdevloper側に与えられたステップに従って実装し、私のコードは下に与えられます。Facebook Sdkログイン、Androidでの無限ループ、修正方法

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); 

} 
関連する問題