2015-09-17 2 views
0

Я осуществляю вход в Facebook с помощью SDK 4, но работает только один раз.Вход в Facebook не работает после logManager logOut

Когда я устанавливаю приложение, я могу подключиться к Facebook совершенно. Тем не менее, когда я выйти из системы и попытаться снова войти в систему, я получаю К сожалению, что-то пошло не так сообщение:

Sorry, something went wrong message

Как инициализировать SDK:

// Called in onCreate() 
private void initFacebook() { 
    FacebookSdk.sdkInitialize(getApplicationContext()); 
    callbackManager = CallbackManager.Factory.create(); 

    LoginManager.getInstance().registerCallback(callbackManager, 
      new FacebookCallback<LoginResult>() { 
       @Override 
       public void onSuccess(LoginResult loginResult) { 
        Log.d(TAG, "On success"); 
        getUserData(loginResult.getAccessToken()); 
       } 

       @Override 
       public void onCancel() { 
        Log.d(TAG, "On cancel"); 
       } 

       @Override 
       public void onError(FacebookException error) { 
        Log.d(TAG, error.toString()); 
       } 
      }); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (callbackManager != null) { 
     callbackManager.onActivityResult(requestCode, resultCode, data); 
    } 
} 

private void getUserData(AccessToken accessToken) { 
    GraphRequest request = GraphRequest.newMeRequest(
      accessToken, 
      new GraphRequest.GraphJSONObjectCallback() { 
       @Override 
       public void onCompleted(
         JSONObject json, 
         GraphResponse response) { 
        Log.v(TAG, response.toString()); 
        if (response.getError() != null) { 
         // handle error 
         Log.d(TAG, "GraphRequest error"); 
        } else { 
         Log.d(TAG, "GraphRequest success"); 
         try { 

          String jsonresult = String.valueOf(json); 
          Log.d(TAG, "JSON Result" + jsonresult); 

          String str_email = json.getString("email"); 
          String str_id = json.getString("id"); 
          String str_name = json.getString("name"); 

         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 
         onLoginSuccess(); 
        } 
       } 
      }); 
    Bundle parameters = new Bundle(); 
    parameters.putString("fields", "id, name, email"); 
    request.setParameters(parameters); 
    request.executeAsync(); 
} 

А вот логин и выход из системы :

@Override 
public void onLoginClicked() { 
    LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("email")); 
} 

@Override 
public void onLogoutClicked() { 
    LoginManager.getInstance().logOut(); 
} 

Что происходит не так?

Спасибо!

ответ

0

первую очередь инициализации facebook SDK, как раз перед setContentview();

FacebookSdk.sdkInitialize(getApplicationContext()); 
setContentView(R.layout.main); 

затем в onResume() вы должны вызвать

@Override 
    protected void onResume() { 
     super.onResume(); 
     AppEventsLogger.activateApp(this); 
    } 

в onPause() вызова следующее:

@Override 
    public void onPause() { 
     super.onPause(); 
     //for facebook 
     AppEventsLogger.deactivateApp(this); 
    } 

кроме этого ваш код хорошо выглядит, вчера ia У меня возникла такая проблема, я думаю, что это проблема с Facebook, потому что сегодня мое приложение работает нормально автоматически.

+0

Спасибо, но это не работает для меня –

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