2013-09-17 3 views
28

Может кто-то, пожалуйста, помогите мне забыть этот бит кода? Это пример дают от Facebook (о том, как подключиться к FB счета - https://developers.facebook.com/docs/android/getting-started/facebook-sdk-for-android/), однако отмеченную строку:Как отказаться от кода Facebook

  Request.executeMeRequestAsync(session, new Request.GraphUserCallback() { 

является устаревшим. Я пытался заменить его:

Request.newMeRequest(session, callback, executeAsync()); 

Однако код вложен так смутно, что портит все это. Я был бы признателен за любую помощь, которую вы могли бы дать, поскольку я был на этом весь день.

// start Facebook Login 
Session.openActiveSession(this, true, new Session.StatusCallback() { 

    // callback when session changes state 
    @Override 
    public void call(Session session, SessionState state, Exception exception) { 
    if (session.isOpened()) { 

     // make request to the /me API 
     Request.executeMeRequestAsync(session, new Request.GraphUserCallback() { // *DEPRECATED 

     // callback after Graph API response with user object 
     @Override 
     public void onCompleted(GraphUser user, Response response) { 
      if (user != null) { 
      TextView welcome = (TextView) findViewById(R.id.welcome); 
      welcome.setText("Hello " + user.getName() + "!"); 
      } 
     } 
     }); 
    } 
    } 
}); 

}

С уважением

ответ

88

Замените ваш Request.executeMeRequestAsync с:

Request.newMeRequest(session, new Request.GraphUserCallback() { 

    // callback after Graph API response with user object 
    @Override 
    public void onCompleted(GraphUser user, Response response) { 
    if (user != null) { 
     TextView welcome = (TextView) findViewById(R.id.welcome); 
     welcome.setText("Hello " + user.getName() + "!"); 
    } 
    } 
}).executeAsync(); 

т.е. Ничего не меняется, за исключением вы вызываете несколько иной метод и положить .executeAsync() в конце.

+0

спасибо, что помогли! –

+0

Фантастически полезное объяснение, спасибо! – Fattie

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