2013-12-20 3 views
0

내 애플 리케이션에 페이 스북 로그인을 구현하지만 지금은 로그인/로그 아웃 상태로 놀아 왔고, 사용자가 로그 아웃 한 경우에만 어떤 모달보기를 볼 것인가 ... 어쨌든 이것이 내가 가지고있는 것입니다. 그것의 작동하지?FBSession, 로그인 여부 확인?

if (FBSessionStateClosed) { 
    [self performSegueWithIdentifier:@"TestModal" sender:nil]; 
} 

어떤 도움을 주셔서 감사합니다!

+0

, 당신은 FBSession ['의 출력을 기록 할 수 있습니다 activeSession] state]'상태를 확인하십시오. –

답변

0

내가 올바르게 표시되면 세션이 여전히 열려 있어야합니다. 사용자 로그 아웃시이 줄을 다시 확인 했습니까?

[FBSession.activeSession closeAndClearTokenInformation]; 

희망에 따라 방법이 도움이 될 수도 있습니다 도움

0

사용 : 당신은 사용자가 로그 아웃 할 것으로 예상되는 시점에서

-(void)openFacebookAuthentication 
{ 
    NSArray *permission = [NSArray arrayWithObjects:kFBEmailPermission,kFBUserPhotosPermission, nil]; 

    FBSession *session = [[FBSession alloc] initWithPermissions:permission]; 

    [FBSession setActiveSession: [[FBSession alloc] initWithPermissions:permission] ]; 

    [[FBSession activeSession] openWithBehavior:FBSessionLoginBehaviorForcingWebView completionHandler:^(FBSession *session, FBSessionState status, NSError *error) { 

     switch (status) { 
      case FBSessionStateOpen: 
       [self getMyData]; 
       break; 
      case FBSessionStateClosedLoginFailed: { 
       // prefer to keep decls near to their use 
       // unpack the error code and reason in order to compute cancel bool 
       NSString *errorCode = [[error userInfo] objectForKey:FBErrorLoginFailedOriginalErrorCode]; 
       NSString *errorReason = [[error userInfo] objectForKey:FBErrorLoginFailedReason]; 
       BOOL userDidCancel = !errorCode && (!errorReason || [errorReason isEqualToString:FBErrorLoginFailedReasonInlineCancelledValue]); 


       if(error.code == 2 && ![errorReason isEqualToString:kFBSdkUserLoginFail]) { 
        UIAlertView *errorMessage = [[UIAlertView alloc] initWithTitle:kFBAlertTitle 
                      message:kFBAuthenticationErrorMessage 
                      delegate:nil 
                      cancelButtonTitle:kOk 
                      otherButtonTitles:nil]; 
        [errorMessage performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:YES]; 
        errorMessage = nil; 
        } 
       } 
       break; 
       // presently extension, log-out and invalidation are being implemented in the Facebook class 
      default: 
       break; // so we do nothing in response to those state transitions 
     } 
    }]; 
    permission = nil; 
}