2012-07-24 65 views
0

我在應用中使用下面的Facebook Hackbook示例代碼。該方法getFriendsCallAPIDialogFeed說(在評論),這種方法「GET是用戶的朋友,讓他們來接一個,並張貼在牆上的」從iOS應用中選擇並張貼到Facebook朋友的牆上

/* 
* Helper method to first get the user's friends then 
* pick one friend and post on their wall. 
*/ 
- (void)getFriendsCallAPIDialogFeed { 
    // Call the friends API first, then set up for targeted Feed Dialog 
    currentAPICall = kAPIFriendsForDialogFeed; 
    [self apiGraphFriends]; 
} 
然而

符合currentAPICall = kAPIFriendsForDialogFeed;它調用下面的請求方法,然後kAPIFriendsForDialogFeed

我遇到的問題是隨機挑選用戶的朋友。我需要用戶能夠選擇他們選擇的朋友。

感謝您的幫助

- (void)request:(FBRequest *)request didLoad:(id)result { 
    [self hideActivityIndicator]; 
    if ([result isKindOfClass:[NSArray class]] && ([result count] > 0)) { 
     result = [result objectAtIndex:0]; 
    } 
    switch (currentAPICall) { 

     case kAPIFriendsForDialogFeed: 
     { 
      NSArray *resultData = [result objectForKey: @"data"]; 
      // Check that the user has friends 
      if ([resultData count] > 0) { 

       // Pick a random friend to post the feed to 
       int randomNumber = arc4random() % [resultData count]; 
       [self apiDialogFeedFriend: 
       [[resultData objectAtIndex: randomNumber] objectForKey: @"id"]]; 
      } else { 
       [self showMessage:@"You do not have any friends to post to."]; 
      } 
      break; 
     } 

這個代碼填充與所有的朋友,您可以從中選擇一個表。選擇只發布一條消息/請求到他們的通知,而不是他們的牆 - 這是我需要的。

 case kAPIGetAppUsersFriendsUsing: 
    { 
     NSMutableArray *friendsWithApp = [[NSMutableArray alloc] initWithCapacity:1]; 
     // Many results 
     if ([result isKindOfClass:[NSArray class]]) { 
      [friendsWithApp addObjectsFromArray:result]; 
     } else if ([result isKindOfClass:[NSDecimalNumber class]]) { 
      [friendsWithApp addObject: [result stringValue]]; 
     } 

     if ([friendsWithApp count] > 0) { 
      [self apiDialogRequestsSendToUsers:friendsWithApp]; 

     } else { 
      [self showMessage:@"None of your friends are using Whatto."]; 
     } 

     [friendsWithApp release]; 
     break; 
    } 

回答

1

使用resultData填充一個表,然後移動發佈代碼到didSelectRowAtIndexPath。如果你希望用戶能夠能夠選擇一個朋友,那麼你需要提供一種方法來選擇朋友Facebook API: Post on friend wall

+0

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [self apiDialogFeedFriend: [[resultData objectAtIndex: indexPath.row] objectForKey: @"id"]]; } 

這太問題告訴你如何張貼到朋友的牆上。 ..我不使用Facebook的API,但我知道有一個特定的功能,牆壁張貼 – Dustin 2012-07-24 14:32:52

+0

這是正確的,因爲評論說:「幫助者的方法首先讓用戶的朋友,然後選擇一個朋友,張貼在他們的牆上「。它隨機挑選一個朋友。 – hanumanDev 2012-07-24 14:36:24

+1

我更新了我的答案,並提供了一個包含掛牆發佈代碼的問題的鏈接。 – Dustin 2012-07-24 14:39:56

相關問題