iOS SDK中的多个请求

时间:2012-01-16 16:51:31

标签: ios facebook-graph-api

我正在为我的应用添加facebook功能,而我正在使用Facebook提供的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个解析响应。有没有办法检索所有这些信息没有做出如此荒谬的请求?

非常感谢您的帮助!

2 个答案:

答案 0 :(得分: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];

}

答案 1 :(得分:0)

您无需创建额外的Facebook Graph请求即可获取用户图片...只需从

加载图片即可
https://graph.facebook.com/<User ID or login name>/picture 

可选?type = square |小|正常|