我正在尝试使用 iOS 6 的新 Facebook 集成 API 查询有关用户的信息。这是我正在使用的代码,与他们在 WWDC 上演示的代码基本相同:
{
NSDictionary *parameters = @{};
NSURL *url = [NSURL URLWithString:@"https://graph.facebook.com/me"];
SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodGET
URL:url
parameters:parameters];
request.account = self.account;
[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
NSLog(@"Facebook request received, status code %d", urlResponse.statusCode);
NSString *response = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"Response data: %@", response);
dispatch_async(dispatch_get_main_queue(), ^{
});
}];
}
问题是我从 Facebook 收到错误代码 2500:“必须使用活动访问令牌来查询有关当前用户的信息。” 如果我将查询更改为 https://graph.facebook.com/[facebook id] 那么它工作正常。我假设问题是iOS在通过requestForServiceType发送请求时传递了应用程序的访问令牌而不是用户的访问令牌。我只是不知道如何解决它。显然,对我的用户的 Facebook ID 进行预测和硬编码不是一种选择。有什么建议么?