0

我在http://developer.facebook.com上有一个类型为“Native iOS”的 Facebook 应用程序,它使用新的 Facebook iOS SDK 3.0 连接到实际的 iOS 应用程序。

我怎么知道是否有多个人已经安装了该应用程序并授权了 Facebook 应用程序,以便我可以将它们放在某个列表中,但这不是我的问题,因为我知道有一个名为“已安装”的字段会true在用户安装应用程序。

因此,如果我想FBFriendPickerViewController根据用户是否使用应用程序来过滤返回的朋友,那么我如何使用该installed字段或其他东西来过滤朋友。

注意:我知道在哪里过滤朋友 (*) 我需要的只是我需要检查以确保用户安装我的应用程序的字段或属性。

*- (BOOL)friendPickerViewController:(FBFriendPickerViewController *)friendPicker shouldIncludeUser:(id<FBGraphUser>)user

4

1 回答 1

0

我找到了一种方法:

我创建了一个向我需要的人发送 FQL 的方法(例如我的朋友,他们是男性)

然后FBFriendPickerViewController使用以下方法将此请求返回的内容与已存在的内容进行比较:

- (BOOL)friendPickerViewController:(FBFriendPickerViewController *)friendPicker shouldIncludeUser:(id<FBGraphUser>)user

对于请求:

NSDictionary *queryParam = [NSDictionary dictionaryWithObjectsAndKeys:@"query", @"q", nil];
[FBRequestConnection startWithGraphPath:@"/fql" parameters:queryParam HTTPMethod:@"GET" 
completionHandler:^(FBRequestConnection *connection,  id result, NSError *error) {
             if (error)
             {
                 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Oops" message:@"Some thing go wrong !, Try again" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

                 [alert show];
             }
             else
             {
                 NSArray *friendInfo = (NSArray *) [result objectForKey:@"data"];

                 for(int i = 0; i < [friendInfo count]; i++)
                 {
                     [self.friendsNames addObject:[[friendInfo objectAtIndex:i] objectForKey:@"name"]];
                 }
             }     
 }];

如您所见,我有一个NSArray存储过滤后的朋友,下一步是在上面的委托方法中比较它们。

希望你觉得它有用。

于 2012-08-23T07:36:40.493 回答