2012-05-06 5 views
0

iPhone 앱에 facebook-ios-sdk를 사용하고 사용자가 버튼을 누를 때 인증 화면을 실행합니다. 그러나 나는 항상 다른 인증 화면을 얻습니다. enter image description hereiOS/iPhone에서 Facebook 인증 화면이 다릅니다

facebook = [[Facebook alloc] initWithAppId:@"167080433419201" andDelegate:self]; 

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"]) { 
    facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"]; 
    facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"]; 
} 

if (![facebook isSessionValid]) { 
    NSArray *permissions = [[NSArray alloc] initWithObjects:@"user_about_me",nil]; 
    [facebook authorize:permissions]; 
} 
+0

이 코드에서는 @ "user_about_me"에 대한 액세스 권한을 부여합니다. 그래서 내게 묻습니다. – Johnykutty

답변

0

나는 해결책을 발견, 내가 다른 권한을 시도 :

이 여기에 더 많은 권한 유형을 찾을 수 있습니다

NSArray *permissions = [[NSArray alloc] initWithObjects: 
      @"user_likes", 
      @"read_stream", 
      nil]; 
     [facebook authorize:permissions]; 

단지 예입니다. 그러나 권한 부여 화면이 바뀌기 전에 잠시 시간이 걸립니다.

0

OAuth를

부여받을 로그인하는 사용자가 필요합니다 : 나는 고급 설정에서 "강화 된 인증 대화 상자"...

enter image description here

다른 앱이 하나의 사용을 가능 앱 프라이버시 목록에 권한이없는 경우 권한. 로그인 후 앱 권한 요청을 허용하면 access_token을 리디렉션 된 URL에서 가져올 수 있습니다.

먼저 로그인해야하며 ios 테스트 앱이 이미 facebbook 앱 개인 정보 보호 목록에있을 수 있습니다.

두 번째 화면은 이미 로그인했지만 첫 번째 화면은 로그인하지 않았습니다. FBSessionDelegate를 사용하여 access_token & 만료 날짜를 저장해야합니다.

- (void)fbDidLogin { 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"]; 
    [defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"]; 
    [defaults synchronize]; 

} 
+0

하지만 왜 첫 번째 화면이 표시되는지, 다른 앱에 초 화면이 표시됩니까? – Flappy

+0

두 번째 화면은 이미 로그인했지만 첫 번째 화면은 로그인하지 않았습니다. 첫 번째 앱이 시작될 때마다 로그인해야합니까? yse 인 경우 FBSessionDelegate를 수정하여 access_token 및 만료 날짜를 저장해야합니다. –