2014-05-20 3 views
2

로그인 한 사용자의 facebook friendlist를 가져 오는 중이며 내 계정에서 정상적으로 작동하지만 앱 세부 정보를 새 계정으로 이전하고 앱 ID 및 앱 비밀번호를 변경했을 때 나는 가져 오는 친구iOS에서 페이스 북의 친구를 가져 오는 중 오류가 발생했습니다.

- (BOOL)retrieveFacebookFriendsForProfileId:(NSString *)fbProfileId completionBlock:(void (^)(NSArray *, NSError *))completionBlock 
{ 

    [FBSession openActiveSessionWithReadPermissions:nil 
             allowLoginUI:YES 
            completionHandler:^(FBSession *session, 
                 FBSessionState state, 
                 NSError *error) { 
             if (error) { 

              NSLog(@"Error"); 
             } else if (session.isOpen) { 

    [[FBRequest requestForMe] startWithCompletionHandler: ^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) { 
     if (error) { 
      //Throws the code 100 error here 
      completionBlock(nil, error); 
     }else{ 
      FBRequest* friendsRequest = [FBRequest requestForMyFriends]; 
      [friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,NSDictionary* result,NSError *error) { 
       if(error) 
        completionBlock(nil, error); 
       else 
       { 
        NSArray *friendJSONs = [result objectForKey:@"data"]; 

        NSMutableArray *friends=[NSMutableArray array]; 
        for(NSDictionary * friendDict in friendJSONs) 
        { 
         SocialProfile *friend=[[SocialProfile alloc] initWithDictionary:friendDict socialMedia:kSocialMediaFacebook]; 
         [friends addObject:friend]; 
        } 
        completionBlock(friends, nil); 
       } 
      }]; 
     } 
    }]; 

             } 
            }]; 
    return YES; 
} 

내 오래된 앱 ID와 비밀을 사용하는 경우이 코드는 잘 작동에 대한

Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0xf89c0b0 {com.facebook.sdk:HTTPStatusCode=400, com.facebook.sdk:ParsedJSONResponseKey={ 
    body =  { 
     error =   { 
      code = 100; 
      message = "(#100) Unknown fields: username."; 
      type = OAuthException; 
     }; 
    }; 
    code = 400; 
}, com.facebook.sdk:ErrorSessionKey=<FBSession: 0xe5a6c30, state: FBSessionStateOpen, loginHandler: 0xe58d5a0, appID: 705259966179163, urlSchemeSuffix: , tokenCachingStrategy:<FBSessionTokenCachingStrategy: 0xf87b180>, expirationDate: 4001-01-01 00:00:00 +0000, refreshDate: 2014-05-20 07:14:50 +0000, attemptedRefreshDate: 0001-12-30 00:00:00 +0000, permissions:(
    status, 
    permission 
)>} 

이 내 현재 코드 아래에이 오류를 받고 있어요. 새 계정에서 설정을 확인했는데 이전 계정에서 수행 한 것과 동일합니다. 문제가 무엇인지 이해하지 못합니다. 어떤 도움을 주신 경우

+0

나는 또한 당신이 친절하게, 그래서 솔루션을 받고 같은 problem.whenever 무엇입니까 공유 .. 감사합니다 \ – Ron

+2

user_friends 권한을 요청 했습니까? 04/30 이후에 생성 된 앱은 v2.0 그래프 API의 적용을받으며 user_friends 권한을 요청해야합니다. 해당 권한으로 앱을 사용하고있는 사용자의 친구 목록을 얻을 수 있습니다. –

+0

[FBR 요청 requestMyFriends] 않을까요? – Gamerlegend

답변

1

에 따르면 https://developers.facebook.com/docs/apps/changelog 친구 목록은 이제 앱을 사용하는 친구 만 반환합니다./me/friends 종점을 통해 반환 된 친구 목록이 이제 귀하의 앱을 승인 한 친구 목록으로 제한됩니다.

그래서 나는이 내 위의 코드를 변경하고 그것은 나에게 응용 프로그램이 아니라 전체 FB의 friendlist를 사용하는 친구의 목록을 준

FBRequest *friendsRequest = [FBRequest requestForGraphPath:@"/me/friends"]; 
+0

정말 고마워요 :) – Karun

+0

@ 카룬 당신은 또한이 게시물을 참조 할 수 있습니다 http://stackoverflow.com/questions/23417356/facebook-graph-api-v2-0-me-friends-returns-empty-or-only- friends-who-also-u/29182403 # 29182403 –

관련 문제