我无法在适用于iOS的新3.0 Beta SDK中的任何位置找到requestWithMethodName
方法。你们放弃它了吗?如果是这样,我们现在应该如何向API发送fql查询?
或者那些被弃用的人?
答案 0 :(得分: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,则可以在调用start之前创建一个FBRequestConnection
对象并添加多个请求,如下所示:
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来获得相同的结果,则使用图形API比使用其余API更受欢迎。我们正在弃用旧的其余API