2013-04-28 3 views
5

페이스 북 튜토리얼에 따라 I (생각)하지만 올바르게 작동하지 않습니다. FB를 통해 로그인 한 다음 사용자에 대한 정보를 얻으려고합니다. 다음안드로이드 페이스 북 SDK - session.isOpened() 항상 false 반환

private Session.StatusCallback statusCallback = new Session.StatusCallback() { 

     @Override 
     public void call(Session session, SessionState state, Exception exception) { 
      System.out.println("GOOD"); 
      if (session.isOpened()) { 
       System.out.println("AWESOME"); 
       Request.executeMeRequestAsync(session, new Request.GraphUserCallback() { 

        // callback after Graph API response with user object 
        @Override 
        public void onCompleted(GraphUser user, Response response) { 
         m_user = user; 
         System.out.println("Hello " + user.getName()); 
        } 
       }); 
      } 
     } 

: 그리고 내가 가진

public void onBtnFacebookClick(final View v) { 
     Session session = Session.getActiveSession(); 
     if (session == null) { 
      session = new Session(this); 
      Session.setActiveSession(session); 
      if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) { 
       session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback)); 
      } 
     } 
     if (!session.isOpened() && !session.isClosed()) { 
      session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback)); 
     } else { 
      Session.openActiveSession(this, true, statusCallback); 
     } 
    } 

을 그러나 "AWESOME은"(인쇄 "GOOD") 인쇄되지 그겁니다 내가 FB에 로그인 관리 않을 것 같다. 또는 session.isOpened()의 의미를 모르겠습니까?

답변

9

이제 정상적으로 작동합니다. 나는 두 가지 문제가 있었다. 하나는 these 지침에 따라 수정 된 잘못된 해시 키입니다. 다른 하나는이 방법을 재정의해야한다는 것을 모르는 것입니다.

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     Session.getActiveSession() 
      .onActivityResult(this, requestCode, resultCode, data); 
    } 
관련 문제