Нет ответа от facebook onCompleted

Здравствуйте, я пытаюсь получить имя пользователя и идентификатор пользователя от зарегистрированного пользователя.

Я пытаюсь использовать этот код в своем onActivityResuly, но он не срабатывает.

Спасибо за помощь :)

final Session session = Session.getActiveSession();
                Request request = Request.newMeRequest(session, new Request.GraphUserCallback() {

                    @Override
                    public void onCompleted(GraphUser user, Response response) {
                        // TODO Auto-generated method stub
                        if (session == Session.getActiveSession()) {
                            if (user != null) {
                                facebook_id = user.getId();//user id
                                facebook_name= user.getName();

                                Log.i("facebook_id", facebook_id);
                                Log.i("facebook_name", facebook_name);

                                new GetProfilePicture().execute();

                            }   
                        }   
                    }   
                }); 
                Request.executeBatchAsync(request);
                    super.onActivityResult(requestCode, resultCode, data2);

person dasdasd    schedule 23.08.2013    source источник
comment
Вы тестируете его на реальном устройстве или эмуляторе?? А какую версию facebook sdk вы используете??   -  person Muhammad Omer    schedule 23.08.2013
comment
какой SDK вы используете?   -  person Piyush    schedule 23.08.2013


Ответы (1)


Я настоятельно рекомендую ознакомиться с руководством здесь https://developers.facebook.com/docs/android/getting-started/facebook-sdk-for-android/

Best Explanation is available на странице Facebook Developers.

В вашем случае следуйте шагу 6, который поможет вам именно так, как вы хотите!

Попробуйте, это работает для меня:

@Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // 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() {

            // callback after Graph API response with user object
            @Override
            public void onCompleted(GraphUser user, Response response) {
              if (user != null) {
               facebook_id = user.getId();//user id
                            facebook_name= user.getName();

                            Log.i("facebook_id", facebook_id);
                            Log.i("facebook_name", facebook_name);
              }
            }
          });
        }
      }
    });
  }

  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
      Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
  }
person Tarsem Singh    schedule 23.08.2013
comment
Я получаю эту ошибку: Метод executeMeRequestAsync(Session, Request.GraphUserCallback) из типа Request устарел - person dasdasd; 23.08.2013
comment
@dasdasd Следуйте шагу 6 здесь developers.facebook.com /docs/android/getting-started/, который вам очень поможет! - person Tarsem Singh; 23.08.2013
comment
@dasdasd: попробуйте использовать newMeRequest вместо executeMeRequestAsync. - person Ajay; 09.04.2014