2013-10-21 5 views
3

시나리오 : 내가 선택된 친구의 벽에 게시물을 공유 할 것입니다.아이폰 OS : 선정 된 FB 친구의 벽에 포스트

전제 조건은 다음 :

시험 1 :은 FB 친구의 전체 목록 중

단계 시도 배열 만 필요한 친구를 선택하고 생성 :FBWebDialogs을 사용하고 + (void)presentFeedDialogModallyWithSession:(FBSession *)session parameters:(NSDictionary *)parameters handler:(FBWebDialogHandler)handler;

을 호출하십시오.

매개 변수 사전에서 "to"값을 설정하십시오.

받는 사람이 하나 일 때 완벽하게 작동합니다. 받는 사람이 둘 이상인 경우 공유 할 수 없습니다.

는 시험 2 : 사용 FBDialogsFBShareDialogParams에서 + (FBAppCall *)presentShareDialogWithParams:(FBShareDialogParams *)params clientState:(NSDictionary *)clientState handler:(FBDialogAppCallCompletionHandler)handler;

를 호출, 친구의 배열을 설정합니다. 이 정상적으로 작동합니다. 페이스 북 앱이 설치되었을 때만 작동합니다. 그렇지 않으면 일하지 않습니다. 여러 친구의 벽에

  1. 공유 :

    ...

    어떤 날이 문제를 해결하는 데 도움이 바랍니다 수 있습니다.
  2. 휴대 전화에 Facebook 앱이 설치되어 있거나 설치되어 있지 않아야합니다.

감사

답변

2

당신은 같은 것을 수행해야합니다 : 이것은 내가 무엇을 사용

FBShareDialogParams *p = [[FBShareDialogParams alloc] init]; 
p.friends = friendIdsArray;` 
p.link = url; 

//check if the FB app is installed and can use this method 
if ([FBDialogs canPresentShareDialogWithParams:p]) { 
    [FBDialogs presentShareDialogWithParams:p 
           clientState:nil 
            handler:^(FBAppCall *call, 
             NSDictionary *results, 
               NSError *error) { 
      //do some error checking 
} 
// fallback to what is essentially a webview 
else { 
    // string of comma separated Facebook Ids 
    NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:@"1234,5678", @"to", nil]; 
    NSString *message = @"I love Objective-C"; 
    [FBWebDialogs presentRequestsDialogModallyWithSession:[FBSession activeSession] 
                message:message 
                title:nil 
               parameters:params 
                handler:^(FBWebDialogResult result, 
                    NSURL *resultURL, NSError *error) { 
       // do some error checking 
    } 

을 유일한 문제 내가 발견은의 수에 알 수없는 제한이있을 나타나는 것입니다 해요 요청을 보낼 때 포함시킬 수있는 Facebook ID입니다. 그것은 문서화 할 수없는 요인에 따라 다양합니다. 나는 FB가 사람들을 악용하거나 스팸으로부터 보호하기 위해 노력하고 있다고 생각합니다. 이유는 .......