2014-05-20 3 views
0

웹상에 많은 정보가 있지만 그 대부분은 사용되지 않는 것으로 보입니다.iOS에서 Facebook 로그인

내 앱 안에 FacebookSDK을 사용하여 사용자 로그인을 시도하고 있습니다.

FBSession을 열고 페이스 북 로그인 화면을 표시 한 다음 로그인 토큰을 받으십시오.

나는 App Id와 App Secret을 가지고 있으며, 프로젝트 정보 안에는 FacebookAppID (info.plist)가 채워져있다.

비밀 ID를 어떻게 처리해야할지 모르겠습니다. 다음에 대한 이전 참조가 표시됩니다.

session = [FBSession sessionForApplication:@"=asdfasdfasdf" secret:@"asdfasdfasdf" delegate:self]; 

하지만이 부분은 더 이상 사용되지 않습니다. 내 방법의 간단한 버전은 다음과 같습니다.

-(IBAction)fbLogin:(id)sender 
    { 
     NSString *fbAccessToken; 
     [MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
     AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate]; 

     //If the user has a facebook session already open 
     if (appDelegate.session.isOpen) 
     { 
      fbAccessToken = [appDelegate.session accessTokenData].accessToken; 
      #ifdef DEBUG 
      NSLog(@"%@\nFacebook Token = %@", NSStringFromSelector(_cmd), fbAccessToken); 
      #endif 
     } 
     else // there is no facebook session 
     { 
      appDelegate.session = [[FBSession alloc] init]; 
      [appDelegate.session openWithCompletionHandler:^(FBSession *session, 
                  FBSessionState status, 
                  NSError *error) { 
       [self fbLogin:self]; 

      }]; 
     } 
    } 

Objective-C 및 Xcode를 처음 사용합니다. 그래서 내가 잘못하고있는 것이 하나 또는 두 가지 이상 있다고 생각합니다.

이 사람은 거기에 몇 가지 고체 정보를 갖고있는 것 같아요 : https://developers.facebook.com/docs/facebook-login/ios/v2.0

하지만 난 정말 내 페이스 북 개발자 페이지에서 내 '앱의 비밀'을 사용해야하는 방법에 대한 많은을 찾을 수 없어.

감사

+0

.plist에 앱 ID를 추가하면 앱 비공개가 필요하지 않습니다. Facebook 로그인 코드가 필요합니다 –

+0

앱 비밀은 비밀이어야합니다. 사용자가 다운로드 한 앱에 앱을 넣으면 비밀이 아닙니다. 이제 Facebook 버전 2.0에서 – WizKid

답변

0

는 지금까지 내가 아는 한, 당신은 당신의 응용 프로그램에서 응용 프로그램의 비밀을 사용할 필요가 없습니다. 질문에 추가 한 것과 동일한 링크를 따라 왔지만 자신의 로그인 UI를 선호하기 때문에 this particular section from the tutorial을 따랐습니다. 이 도움이

[FBSession openActiveSessionWithReadPermissions:@[@"public_profile"] 
             allowLoginUI:YES 
            completionHandler:^(FBSession *session, FBSessionState state, NSError *error) { 


             // Retrieve the app delegate 
             AppDelegate* appDelegate = (AppDelegate*)[UIApplication sharedApplication].delegate; 
             // Call the app delegate's sessionStateChanged:state:error method to handle session state changes 
             [appDelegate sessionStateChanged:session state:state error:error]; 

             if(!error && state == FBSessionStateOpen) { 

              // Do something else 
             } 
            }]; 

희망 : 내 응용 프로그램에서 페이스 북에 로그인 한 사용자를 얼마나 내 응용 프로그램 plist 파일에 추가 응용 프로그램 ID, 이것은이다.

+0

이 [@ "basic_info"]를 더 이상 사용하지 않으며 public_profile을 –

+0

으로 변경했습니다. 내 대답을 업데이트했습니다. – akdsouza

+0

감사합니다. 나는 당신이 if (! error ...) {do work}를 포함하고 있다고 가정한다. 아니면 여기에 sessionStateChanged 메서드가 아닌이 사건을 처리 할만한 이유가 있습니까? (이것이 큰 의미는 아닙니다.) –

관련 문제