2012-09-28 1 views
3

iOS 6 사용자는 설정> Facebook을 통해 Facebook에 로그인 할 수 있습니다. 이보기에는 사용자가 Facebook 계정의 사용을 허용/금지하도록 선택할 수있는 섹션이 나열되는 섹션이 있습니다.Facebook 설정 iOS 6 - 앱 이름 허용 안함에 표시되는 앱 이름

내 FacebookSDK.framework를 내 앱에 통합했으며이 목록에 앱에 대한 행이 표시됩니다. 단, 내 앱 이름이 나열되어 있지 않으며 앱 아이콘도 표시되지 않습니다.

나는 여러 가지 검색을 수행했으며 이름/아이콘을 목록에 추가하는 방법을 찾지 못하는 것 같습니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?

답변

3

액세스 요청하기 위해 계정 저장소 방법을 사용해야합니다 : 그 다음과 같이 앱 ID와 페이스 북에 게시 할 수 있습니다 완료되면

-(void)authenticateFacebook { 
if([UIActivityViewController class]) { 
    NSArray *faceBookPermissions = @[@"publish_stream"]; 
    ////ACFacebookAppVersionKey: @"1.0", 

    NSDictionary *faceBookOptions = @{ 
ACFacebookAppIdKey: @"xxxxxxxx", 
ACFacebookPermissionsKey:faceBookPermissions, 
ACFacebookAudienceKey:ACFacebookAudienceFriends 
    }; 

    AppDelegate *del = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
    if(del.accountStore == nil) { 
     del.accountStore = [[ACAccountStore alloc] init]; 
    } 
    if(del.facebookAccount == nil) { 
     ACAccountType *facebookAccountType = [del.accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook]; 
     [del.accountStore requestAccessToAccountsWithType:facebookAccountType 
                options:faceBookOptions 
               completion:^(BOOL granted, NSError *error) 
     { 
      if (granted) { 
       NSArray *accounts = [del.accountStore accountsWithAccountType:facebookAccountType]; 
       del.facebookAccount = [accounts lastObject]; 
       NSLog(@"got an account"); 
       [self performSelectorOnMainThread:@selector(gotAnAccount) withObject:self waitUntilDone:NO]; 
      } else { 
       NSLog(@"No account"); 
       //fail gracefully 
       [self performSelectorOnMainThread:@selector(noAccount) withObject:self waitUntilDone:NO]; 
      } 
     }]; 
    } 
} 

을 :

-(void)postToFacebook:(NSDictionary *)parameters { 

    AppDelegate *del = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 

    NSURL *feedURL = [NSURL URLWithString:@"https://graph.facebook.com/me/feed"]; 

    SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeFacebook 
              requestMethod:SLRequestMethodPOST 
                 URL:feedURL 
               parameters:parameters]; 
    request.account = del.facebookAccount; 
    [request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) { 
     NSString *alertText; 
     if (error) { 
      alertText = [NSString stringWithFormat: 
         @"error: domain = %@, code = %d", 
         error.domain, error.code]; 
      [self performSelectorOnMainThread:@selector(errorWithRequest:) withObject:alertText waitUntilDone:NO]; 
     } else { 
      alertText = @"Posted action, id: %@"; 
      [self performSelectorOnMainThread:@selector(cancelButtonAction:) withObject:nil waitUntilDone:NO]; 

     } 
     NSLog(@"%@",alertText); 
    }]; 
} 

을 당신 ' 앱 대리인이 accountStore 및 account 변수를 가지고 있어야하며 사용 된 @selector 메소드를 생성해야합니다. 완성 핸들러는 UI로 무엇이든하면 주 스레드에서 실행해야하며, 완료 핸들러 UI 코드가 실행될 때까지 기다릴 수도 있습니다.

+0

위대한 답변 인 것처럼 보입니다.하지만 대답하는 것이이 질문입니까? 나는 쉽게 뭔가를 놓칠 수 있었고, 단지 확인하고 싶었다. – SAHM

+0

좋아요, 계정에 액세스하기 위해 AccountStore를 사용하는 것에 대해 알고 있다고 생각합니다. 계정을 요청하면 계정이 목록에 추가됩니다. 그러나 새로운 3.1 SDK를 고려할 때 사용자가 앱에 로그인 할 때마다이 작업을 수행해야합니까? – SAHM

+3

기본 통합을 사용 중이므로 3.1 SDK 대신이 코드를 사용합니다. 3.1 SDK를 사용하면 기본 통합을 사용하거나 FB 목록에서 앱을 볼 필요가 없습니다. Native는 앱의 자동 게시물이나 맞춤 FB 시트 만들기에 적합합니다. 네이티브 코드가 더 빠름을 발견했습니다. – earnshavian