2012-01-16 65 views
1

我将Facebook功能添加到我的应用程序,并使用Facebook提供的SDK。iOS SDK中的多个请求

我登录使用[facebook authorize:nil]呼叫,并检索用户的好友列表拨打电话到图形API:[facebook requestWithGraphPath:@"me/friends" andDelegate:self]

不过,事后我想获取的用户的朋友的每一个细节和个人资料照片。现在我这样做使这个电话:

-(void)getDetailedInfoForFacebookUser:(NSArray *)aIDArray 
{ 
    for (NSString *aID in aIDArray) {    
     [facebook requestWithGraphPath:aID andDelegate:self]; 
     [facebook requestWithGraphPath:[NSString stringWithFormat:@"%@/picture",aID] andDelegate:self]; 
    } 
} 

但响应时间的方式来长,因为对于一般的用户(约500个朋友)有超过1000点的响应进行解析。有没有办法检索所有这些信息,但没有提出如此荒谬的请求数量?

非常感谢您的帮助!

+0

你不必一次读取所有500张图片...如果您在表格单元格中加载它们,加载它们asnchronoulsy为表格单元格成为cellForRowAtIndxPath什么可见。或者,也许你会做:)你对图像做什么? – 2012-01-16 19:08:41

+0

我希望它们处于缓存中以便更快地绘制,并仅在必要时才更新它们。 – 2012-01-20 09:00:52

回答

2

使用FQL,您可以批量请求并一次解析所有!

-(void) startFriendsRequest 
{ 

    // Construct your FQL Query  
NSString* fql = [NSString stringWithFormat:@"SELECT uid,name,first_name,middle_name,last_name,pic_square FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())"]; 

// Create a params dictionary 
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObject:fql forKey:@"query"]; 

// Make the request 
[facebook requestWithMethodName:@"fql.query" andParams:params andHttpMethod:@"GET" andDelegate:self]; 

} 
0

你并不需要创建一个额外的Facebook图形请求来获取用户的图片......刚刚从

https://graph.facebook.com/<User ID or login name>/picture 

可选类型=方加载你的形象?|小|正常|大