2012-11-14 2 views
0

내 응용 프로그램에 페이스 북 로그인을 통합하려고합니다. 나는 사용자가 로그인 할 수있게하고 그의 생일과 위치를 얻을 수 있기를 바랍니다.페이스 북 sdk : 권한을 부여한 후에도 ActiveSession이 닫힙니다.

나는 최신 Facebook SDK를 받았으며 응용 프로그램에 성공적으로 추가했습니다. 또한 페이스 북에 새로운 응용 프로그램을 만들고 응용 프로그램에 제공된 키를 추가했습니다.

나는 버튼 "페이스 북에 로그인"을 작성했을

하여 사용자가이 방법을 얻을하기 위해 사용자에게 페이스 북의 로그인 페이지가 표시됩니다

// handler for button click 
- (IBAction)facebookLoginTouched:(id)sender { 
    [self openSessionWithAllowLoginUI:YES]; 
} 

버튼을 클릭하면

에 따라 자신의 허가

-(BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI { 
    NSArray *permissions = [[NSArray alloc] initWithObjects: 
          @"user_location", 
          @"user_birthday", 
          nil]; 
    return [FBSession openActiveSessionWithReadPermissions:permissions 
              allowLoginUI:allowLoginUI 
            completionHandler:^(FBSession *session, 
                 FBSessionState state, 
                 NSError *error) { 
             [self HandleLogin]; 
            }]; 
} 

그런 경우 로그인과 성공의 허가

- (void)HandleLogin { 
    if (FBSession.activeSession.isOpen) { 
     //THIS IS NEVER REACHED 

     [FBRequestConnection 
     startForMeWithCompletionHandler:^(FBRequestConnection *connection, 
             id<FBGraphUser> user, 
             NSError *error) { 
      //DO SOMETHING WITH THE USER INFO 
     }]; 
    } 
} 

내 문제는 : 나는 버튼을 클릭하면

페이스 북의 페이지가 제대로 들어오고 내 사용자 이름/암호를 입력합니다. 그것은 올바르게 기록되어 응용 프로그램이 내 정보에 액세스 할 수있는 권한을 부여했습니다. 끝나면 앱으로 돌아갑니다.

그러나 코드가 FBSession.activeSession.isOpen에 도달하면 false를 반환합니다.

올바르게 로그인하고 권한을 부여한 후에도 세션이 여전히 닫히는 이유는 무엇입니까?

도움을 주시면 대단히 감사하겠습니다.

감사합니다.

답변

2

Facebook 앱의 반품을 처리하는 코드가 누락되었을 수 있습니다. 앱 위임 구현 파일에 다음을 추가하십시오.

- (BOOL)application:(UIApplication *)application 
      openURL:(NSURL *)url 
    sourceApplication:(NSString *)sourceApplication 
     annotation:(id)annotation { 
    // attempt to extract a token from the url 
    return [FBSession.activeSession handleOpenURL:url]; 
} 
+0

감사합니다. 그것은 매력처럼 일했습니다. 건배 – Youssef

관련 문제