4

나는 Facebook Android Android sdk3.0을 사용하고 있습니다. 사용자가 Facebook을 통해 성공적으로 로그인하면 작업을 수행하려고합니다. onActivityResult 또는 onComplete 함수 내에서 구현해야합니까 Session.StatusCallback?onActivityResult와 Session.StatusCallback의 onComplete의 차이 Facebook Android sdk3.0

실제로이 둘 사이에는 어떤 차이가 있습니까? onActivityResult 이후에 Session.StatusCallback onComplete가 항상 호출된다고 가정 할 수 있습니까? 당신이 두 가지를 모두 수행해야

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); 
    // Do Something Here? 
} 


private class SessionStatusCallback implements Session.StatusCallback { 

    @Override 
    public void call(Session session, SessionState state, Exception exception) { 

     if (session.isOpened()) { 
      // Or Do Something Here? 
     } 
    } 
} 

답변

5

짧은 대답이다.

onActivityResult가 필요합니다. SDK가 사용자가 이용 약관에 동의했는지 확인하기 위해 Facebook SDK에 정보를 전달해야하기 때문입니다. SDK가 모든 것을 검증하면 새로운 상태 또는 발생한 모든 오류로 SessionStatusCallback.call을 호출합니다.

새 세션을 열면 먼저 OPENING 상태 (콜백을 호출 함)로 전환 한 다음 SSO를 수행하고 SSO가 완료되면 onActivityResult가 호출됩니다. session.onActivityResult 또는 uiLifecycleHelper.onActivityResult를 호출해야하는 경우 세션이 OPENED 상태로 전환되어 콜백이 다시 호출됩니다.

+0

놀라운 도움이 많이되었습니다. –