2012-05-08 13 views
4

私はFB SDKを使用して、ユーザーが友人を招待して自分のアプリをダウンロードできるようにしています。ユーザーが招待ボタンをクリックしたときにFBリクエストを作成しています。アクションは次のようになります。ネイティブiOSアプリでFacebook SDKを使用して複数の友達を招待する

- (IBAction)inviteButtonPressed:(UIButton *)sender { 
// create a dictionary for our dialog's parameters 
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithCapacity: 7]; 

// set the frictionless requests parameter to "1" 
[params setObject: @"1" forKey:@"frictionless"]; 
[params setObject: @"Test Invite" forKey:@"title"]; 
[params setObject:appID forKey:@"app_id"]; 


[params setObject: @"Test" forKey: @"message"]; 
if([friendsToInvite count] != 0){ 

    [params setObject:friendsToInvite forKey:@"to"]; 

    NSLog(@"%@", params); 
} 

// show the request dialog 
[facebook dialog:@"apprequests" andParams:params andDelegate: nil]; 

} 

問題は、私は@「を」プロパティのオブジェクトのために(ユーザーが選択した)友人の配列を渡しています。これは、Facebookのライブラリがオブジェクト(フェイスブックからコード)「を」@を解析しようとする方法である:

 id fbid = [params objectForKey:@"to"]; 
     if (fbid != nil) { 
      // if value parses as a json array expression get the list that way 
      SBJsonParser *parser = [[[SBJsonParser alloc] init] autorelease]; 
      id fbids = [parser objectWithString:fbid]; 
      if (![fbids isKindOfClass:[NSArray class]]) { 
       // otherwise seperate by commas (handles the singleton case too) 
       fbids = [fbid componentsSeparatedByString:@","]; 
      }     
      invisible = [self isFrictionlessEnabledForRecipients:fbids];    
     } 

私のコードは私にこのエラーを与えている:

-[__NSArrayM UTF8String]: unrecognized selector sent to instance 0x1aea00 
2012-05-08 01:48:29.958 shmob[2976:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM UTF8String]: unrecognized selector sent to instance 0x1aea00' 

私は、単一のアプリケーションIDをハードコーディングするとき@ ""オブジェクトに、それは動作します!私はFacebookの友達のリストをどのように招待できるか知っていますか?

私はcomponentsjoinedbystring使用して文字列に配列を変換してからプロパティ「を」@用のparamとして文字列を設定します。

答えて

10

は修正を発見します。このように:

if([friendsToInvite count] != 0){ 

    NSString * stringOfFriends = [friendsToInvite componentsJoinedByString:@","]; 

    [params setObject:stringOfFriends forKey:@"to"]; 

    NSLog(@"%@", params); 
} 

// show the request dialog 
[facebook dialog:@"apprequests" andParams:params andDelegate: nil]; 

作品は魅力的です。

+0

Facebook Freiendにリクエストが正常に投稿/送信されたことを確認できますか? –

関連する問題