The following solution worked for me. But if you save a permanent access token, you must be sure that the user does not delete the application’s rights, otherwise he will give an error. And you can check this with requestWithGraphPath → "me / permissions".
Application init function (e.g. :: didFinishLaunchingWithOptions / or, where you start your Facebook object, which should be fbsessiondelegate on average)
... NSArray* permissions = [[NSArray alloc] initWithObjects:@"user_likes",@"offline_access", nil]; FBSession*oursession = [[FBSession alloc] initWithPermissions:permissions]; ...
FBDidLogin Function:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"]; [defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"]; [defaults synchronize];
Example api request function:
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) {
source share