2015-06-25 2 views
1

С ума сходить. Я пытаюсь войти в FB и в то же время получить информацию о пользователе.Android FB logInWithReadPermissions и registerCallback БЕЗ кнопки входа

Вход в систему FB отлично работает, приложение изменяется на FB, показывает, какое разрешение запрашивает приложение, и после нажатия «Принять» возвращается в мое приложение. НО регистр Callback никогда не вызывается. Где моя ошибка? вот мой код:

 FacebookSdk.sdkInitialize(getApplicationContext()); 
     CallbackManager mCallbackManager = CallbackManager.Factory.create(); 
     LoginManager.getInstance().logInWithReadPermissions(
       this, 
       permissionNeeds); 

     LoginManager.getInstance().registerCallback(mCallbackManager, 
       new FacebookCallback<LoginResult>() { 
        @Override 
        public void onSuccess(LoginResult loginResult) { 
         Log.e("dd", "SUCCESS"); 

         GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() { 

            @Override 
            public void onCompleted(JSONObject json, GraphResponse response) { 
             if (response.getError() != null) { 
              System.out.println("ERROR"); 
             } else { 
              System.out.println("Success"); 
              try { 
               String jsonresult = String.valueOf(json); 
               System.out.println("JSON Result" + jsonresult); 
               String str_email = json.getString("email"); 
               String str_id = json.getString("id"); 
               String str_firstname = json.getString("first_name"); 
               String str_lastname = json.getString("last_name"); 
              } catch (JSONException e) { 
               e.printStackTrace(); 
              } 
             } 
            } 
           }).executeAsync(); 
        } 

        @Override 
        public void onCancel() { 

         Log.e("dd", "facebook login canceled"); 

        } 


        @Override 
        public void onError(FacebookException e) { 


         Log.e("dd", "facebook login failed error"); 

        } 
       }); 
+0

Является ли это внутри фрагмента или деятельности? Вам необходимо переопределить метод onActivityResult. https://developers.facebook.com/docs/facebook-login/android –

+0

находится внутри Activity. См. Мое редактирование, как вы упоминаете, это отсутствующий onActivityResult –

ответ

4

EDIT:

нашел, следующий код не хватало, теперь я получаю информацию о пользователе после авторизации

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    super.onActivityResult(requestCode, resultCode, data); 
    mCallbackManager.onActivityResult(requestCode, resultCode, data); 
} 
Смежные вопросы