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] に変更すると、正常に動作します。requestForServiceType を介してリクエストを送信するときに、iOS がユーザーのアクセス トークンではなくアプリのアクセス トークンを渡していることが問題であると想定しています。私はそれを修正する方法がわかりません。明らかに、ユーザーの Facebook ID を予測してハードコーディングすることはできません。助言がありますか?