0

新しい Facebook iOS SDK 3.0 を使用して実際の iOS アプリに接続されている「ネイティブ iOS」タイプのhttp://developer.facebook.comにFacebook アプリがあります。

複数の人がすでにアプリをインストールして 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 に答える