requestWithMethodName
我在适用于 iOS 的新 3.0 Beta SDK 中的任何地方都找不到该方法。你们放弃了吗?如果是,我们现在应该如何将 fql 查询发送到 API?或者那些被弃用了?
问问题
2574 次
1 回答
5
您可以使用方法名称发出请求:
[[[FBRequest alloc] initWithSession:...
restMethod:...
parameters:...
HTTPMethod:...]
startWithCompletionHandler:...];
但是,您也可以使用 FQL 图形对象进行 FQL 查询,如下所示:
FBRequest *fql = [FBRequest requestForGraphPath:@"fql"];
[fql.parameters setObject:@"SELECT uid, name, pic_square FROM user WHERE uid = me()"
@"OR uid IN (SELECT uid2 FROM friend WHERE uid1 = me())"
forKey:@"q"];
[fql startWithCompletionHandler:^(FBRequestConnection *connection,
id result,
NSError *error) {
if (result) {
NSLog(@"result:%@", result);
}
}];
最后,如果您想批量处理多个请求,而不是在FBRequest
对象上调用 start,您可以创建一个FBRequestConnection
对象并在调用 start 之前添加多个请求,如下所示:
FBRequestConnection *conn = [[FBRequestConnection alloc] init];
[conn addRequest:fqlRequest1 completionHandler:^(FBRequestConnection *connection,
id result,
NSError *error) {
if (result) {
NSLog(@"result:%@", result);
}
}];
[conn addRequest:fqlRequest2 completionHandler:^(FBRequestConnection *connection,
id result,
NSError *error) {
if (result) {
NSLog(@"result:%@", result);
}
}];
[conn start];
SDK 负责将请求序列化为对服务器的单个批处理请求,以及解析响应并使用匹配的结果或错误调用正确的处理程序。
笔记
如果您可以使用图形 API 或 REST API 来获得相同的结果,则使用图形 API 优于使用 REST API。我们正在弃用旧的 rest API
于 2012-07-15T03:01:54.983 回答