2012-07-21 24 views

回答

2

FBFriendPickerDelegate

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

這似乎是工作。我需要保留已過濾的朋友列表(使用示例fql指令),然後在每個回調中進行比較。不優雅,但工作。謝謝。 – 2012-08-08 11:13:02

2

據我所知,FBCacheDescriptor是預取所需的數據,以提高表視圖的響應能力。例如,如果你希望緩存的朋友選擇器列表中,你可以這樣做......

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions { 
    if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded) { 
     [FBSession sessionOpen]; 

     FBCacheDescriptor *cacheDescriptor = [FBFriendPickerViewController cacheDescriptor]; 
     [cacheDescriptor prefetchAndCacheForSession:FBSession.activeSession]; 
    } 
    return YES; 
} 

有關於Facebook提供美味的演示應用程序一個很好的例子。

您可以使用新的API執行FQL,但正如我所說的將Cache與Cache綁定在一起並沒有記錄在任何地方。下面是如何使用新的SDK運行FQL ...

- (void)getFacebookFriends { 
    NSMutableDictionary * params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
            @"Your FQL Query goes here", @"query", 
            nil]; 

    FBRequestConnection *connection = [FBRequestConnection new]; 

    FBRequestHandler handler = 
    ^(FBRequestConnection *connection, id result, NSError *error) {   
     ........ 
     //Process the result or the error 
     NSLog(@"%@", result); 
    }; 

    FBRequest *request = [[FBRequest alloc] initWithSession:FBSession.activeSession 
               restMethod:@"fql.query" 
               parameters:[params mutableCopy] 
               HTTPMethod:HTTP_GET]; 

    [connection addRequest:request completionHandler:handler]; 

    [self.requestConnection cancel];  
    self.requestConnection = connection; 

    [connection start]; 
} 
+0

謝謝,Chateaudlfless。但是我仍然不知道是否可以將FQL響應綁定到FBFriendPickerViewController。 – 2012-07-23 06:03:51

+0

我不相信你可以。如果你沿着FQL路線走下去,你將需要使用requestForGraphPath API並處理你自己的結果集,這可能會變得很慢。我可以知道你爲什麼要使用FQL嗎? – 2012-07-26 02:11:32

+0

共享超過10個共同朋友的所有朋友的列表: SELECT ... AND mutual_friend_count> 10 ORDER BY last_name – 2012-07-27 05:47:26

相關問題