Facebook连接批量请求和FQL错误问题

我正在开发一个FB连接的iPhone iOS应用程序。

我想为我的每个朋友获取大量的数据,并且需要多个请求。

我不知道是否有一种方法在iOS SDK中使用批量请求?

和FQL多重查询的另一个问题。 以下查询仅适用于一个朋友的限制! 奇怪的。

 SELECT eid FROM event_member WHERE uid IN(SELECT uid2 FROM friend WHERE uid1 = me()LIMIT 2) 

它返回错误The operation couldn't be completed. (facebookErrDomain error 1.) The operation couldn't be completed. (facebookErrDomain error 1.)根据Facebook的这个例子,它应该一直工作。

您可以使用Facebook iOS SDK进行批量请求,但是您需要自己准备JSON请求。 这里是一个例子:

  • 首先,创build一个包含2个JSON请求的JSON数组string(请参阅http://developers.facebook.com/docs/api/batch )。 您可以使用您的首选JSON API来创build这些string。
  • 其次,使用映射到JSON请求string的“批处理”键创build参数字典。
  • 然后,发送请求。 请注意,您需要将某些东西放在requestWithGraphPath中。 我只是把“我”(这个要求是不考虑)。 你也必须把它作为POST http方法发送。
  • 最后,请求:didLoad中的响应数组。

 -(void) prepareMyBatchRequest { NSString *jsonRequest1 = @"{ \"method\": \"GET\", \"relative_url\": \"me/friends\" }"; NSString *jsonRequest2 = @"{ \"method\": \"GET\", \"relative_url\": \"me/albums\" }"; NSString *jsonRequestsArray = [NSString stringWithFormat:@"[ %@, %@ ]", jsonRequest1, jsonRequest2]; NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObject:jsonRequestsArray forKey:@"batch"]; [facebook requestWithGraphPath:@"me" andParams:params andHttpMethod:@"POST" andDelegate:self]; } - (void)request:(FBRequest *)request didLoad:(id)result { NSArray *allResponses = result; for ( int i=0; i < [allResponses count]; i++ ) { NSDictionary *response = [allResponses objectAtIndex:i]; int httpCode = [[response objectForKey:@"code"] intValue]; NSString *jsonResponse = [response objectForKey:@"body"]; if ( httpCode != 200 ) { NSLog( @"Facebook request error: code: %d message: %@", httpCode, jsonResponse ); } else { NSLog( @"Facebook response: %@", jsonResponse ); } } } 

关于你的其他问题,我不知道(尝试在不同的post中提出其他问题,以便跟进)。