次の解決策は私のために働いた。ただし、永続的なアクセストークンを保存している場合は、ユーザーがアプリケーションのアクセス許可を削除していないことを確認する必要があります。そうしないと、エラーが発生します。そして、requestWithGraphPath-> "me/permissions"で確認できます。
アプリケーション初期化関数(例:didFinishLaunchingWithOptions /またはその間にfbsessiondelegateする必要があるFacebookオブジェクトを初期化する場所)
...
NSArray* permissions = [[NSArray alloc] initWithObjects:@"user_likes",@"offline_access", nil];
FBSession*oursession = [[FBSession alloc] initWithPermissions:permissions];
...
FBDidLogin関数:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
グラフAPIリクエスト関数の例:
NSUserDefaults *userDefaults =[NSUserDefaults standardUserDefaults];
NSString *key = [userDefaults stringForKey:@"FBAccessTokenKey"];
FBRequest* ourcon = [[FBRequest alloc] initWithSession:oursession graphPath:@"me/likes" parameters:params HTTPMethod:@"GET"];
[ourcon startWithCompletionHandler: ^(FBRequestConnection *connection, id<FBGraphUser> result, NSError *error){
if(error)
{
//NSLog(error.code);
return;
}
NSArray* collection = (NSArray*)[result data];
NSLog(@"You have %d like", [collection count]);
NSDictionary* name = [collection objectAtIndex:14];
NSLog(@"Like Name: %@", [name objectForKey:@"name"]);
}];