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中提出其他问题,以便跟进)。
- 如何使用FB SDK 4在单个客户端中使用多个FB Application ID?
- iOS发布到Facebook应用程序墙上
- 对于使用Facebook iOS SDK的混合SSO场景,为我们自定义用户logging生成密码/密钥的最佳方式是什么?
- 如何移动到使用iOS SDK的Facebook JSON响应中的下一页?
- 在UiWebView – NSURLConnection / CFURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-108)
- 如何在Swift iOS应用程序的头文件中导入FacebookSDK
- 具有返回值的iOS块
- 该应用程序在payload / appname.app / appname:_terminateWithStatus中引用非公共select器
- Xcode 6.3.2 – 无法通过Parse.com – Swift从Facebook获得授权