2015-12-16 2 views
0

Я сделал реализацию входа в facebook в своем приложении. Таким образом, этот код работает в первый раз, когда он извлекал данные пользователя из facebook, но когда я использую логин fb во второй раз, часть oncancel выполняется, опять же, если я очищаю данные приложения и логину с помощью fb снова, он снова работает.Проблема интеграции с Facebook на Facebook (fb sdk 4)

Это мой код для регистрации приложения с facebook.

protected void Registerwithfb() 
    { 
     // TODO Auto-generated method stub 
     callbackManager = CallbackManager.Factory.create(); 

    LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile,user_about_me, email, user_birthday, user_friends")); 


     LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 


      @Override 
      public void onSuccess(LoginResult result) { 
       // TODO Auto-generated method stub 
       // TODO Auto-generated method stub 

       if (AccessToken.getCurrentAccessToken() != null) { 

        GraphRequest request = GraphRequest.newMeRequest(result.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() { 

         @Override 
         public void onCompleted(JSONObject object, GraphResponse response) { 
          // TODO Auto-generated method stub 
          JSONObject json = response.getJSONObject(); 
          try { 
           if (json != null) { 
            String name = json.getString("name"); 
            String id = json.getString("id"); 


           } 

          } catch (JSONException e) { 
           e.printStackTrace(); 
          } 
         } 


        }); 
        Bundle parameters = new Bundle(); 
        parameters.putString("fields", "name,email,first_name,last_name"); 
        // Toast.makeText(getApplicationContext(), parameters.toString(), Toast.LENGTH_LONG).show(); 
        request.setParameters(parameters); 
        request.executeAsync(); 
       } 


      } 

      @Override 
      public void onCancel() { 
       // TODO Auto-generated method stub 
       System.out.println("cancelled"); 

      } 

      @Override 
      public void onError(FacebookException error) { 
       // TODO Auto-generated method stub 
       System.out.println(error); 

      } 
     }); 


    } 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 


       //super.onActivityResult(requestCode, resultCode, data); 
      // facebook.authorizeCallback(requestCode, resultCode, data); 
      //callbackManager.onActivityResult(requestCode, resultCode,data); 
      super.onActivityResult(requestCode, resultCode, data); 
      callbackManager.onActivityResult(requestCode, resultCode, data); 


      } 

ответ

0
protected void Registerwithfb() 
     { 
      // TODO Auto-generated method stub 
      callbackManager = CallbackManager.Factory.create(); 

    //I simply added this line 
LoginManager.getInstance().logOut(); 

     LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile,user_about_me, email, user_birthday, user_friends")); 
Смежные вопросы