get el token de acceso de Facebook en iOS 6.0

Había implementado el SDK de Facebook con la ayuda de los cuales podía get la authentication de Facebook, así como la información del usuario con el siguiente código.

if(!self.accountStore) self.accountStore = [[ACAccountStore alloc] init]; if(NSClassFromString(@"SLComposeViewController") != nil) { ACAccountType *facebookTypeAccount = [self.accountStore accountTypeWithAccountTypeIdentifier:@"com.apple.facebook"]; NSLog(@"facebookTypeAccount..:%@",facebookTypeAccount); NSArray *accounts = [self.accountStore accountsWithAccountType:facebookTypeAccount]; if (facebookTypeAccount) { if ([accounts respondsToSelector:@selector(count)]) { [self.accountStore requestAccessToAccountsWithType:facebookTypeAccount options:@{ACFacebookAppIdKey: @"key", ACFacebookPermissionsKey: @[@"email"]} completion:^(BOOL granted, NSError *error) { if(granted){ NSArray *accounts = [self.accountStore accountsWithAccountType:facebookTypeAccount]; [self fetchuserinfo]; } }]; } -(void)fetchuserinfo { NSString *accessToken = [FBSession activeSession].accessToken; NSString *url=[NSString stringWithFormat:@"https://graph.facebook.com/me"]; NSURL *meurl = [NSURL URLWithString:url]; SLRequest *merequest = [SLRequest requestForServiceType:SLServiceTypeFacebook requestMethod:SLRequestMethodGET URL:meurl parameters:nil]; NSLog(@" setting account %@",_facebookAccount); merequest.account = _facebookAccount; [merequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) { NSString *meDataString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; returnedData = responseData; NSLog(@" meRequest Respnse %@", meDataString); if (returnedData!=nil) { if(NSClassFromString(@"NSJSONSerialization")) { NSError *error = nil; id object = [NSJSONSerialization JSONObjectWithData:returnedData options:0 error:&error]; if(error) { } if([object isKindOfClass:[NSDictionary class]]) { NSDictionary *results = object; NSString *categoryString=[[results valueForKeyPath:@"picture.data"] objectForKey:@"url"]; NSString *userid=[results objectForKey:@"id"]; if (userid != nil) { self.gotUserDetails = YES; } NSString *username=[results objectForKey:@"name"]; NSString *email=[results objectForKey:@"email"]; NSUserDefaults *userId=[NSUserDefaults standardUserDefaults]; [userId setObject:userid forKey:@"userid"]; } } } } 

Pero para publicar el feed ( https://graph.facebook.com/me/feed/access_token= ) de este usuario de inicio de session necesito token de acceso. Si alguien sabe cómo get el token de acceso en iOS 6.0, por favor ayúdeme.

Gracias a todos.

En lugar de preocuparse por get el token y pasar eso con usted, Apple ha proporcionado SLRequest que puede usar. Especifique la URL y los parameters de SLRequest y SLRequest ofertas de SLRequest (de forma transparente) con la authentication, transmisión y recostackción de los datos de respuesta.


Es posible que no obtenga el token, pero aún necesita get autorización y esa autorización está vinculada a la list de cosas que desea hacer. Su código actualmente solo muestra que desea get la dirección de correo electrónico, pero puede agregar otros permissions:

 [accountStore requestAccessToAccountsWithType:facebookAccountType options: @{ ACFacebookAppIdKey : ..., ACFacebookPermissionsKey : @[ @"email", @"read_stream", @"user_groups", @"user_videos" ]), } completion:^(BOOL granted, NSError *error) { ... 

ACFacebookPermissionsKey verificar la documentation de Facebook para averiguar qué permissions necesita solicitar del usuario y rellenarlos para ACFacebookPermissionsKey .

 //Try This -(void)fetchuserinfo { NSString *accessToken = [FBSession activeSession].accessToken; NSLog(@"%@",accessToken); } or -(void)fetchuserinfo { NSLog(@"%@",FBSession.activeSession.accessToken); } 

Facebook SDK 3.2 en iOS 7 y iOS 8, funciona bien para mí.

Debes importar FacebookSDK / FacebookSDK.h

 #import <FacebookSDK/FacebookSDK.h> .... [self checkFBIDWithToken:[FBSession activeSession].accessTokenData.accessToken]; 

PS: "checkFBIDWithToken: (NSString *) tempToken" es un método.

doc de Facebook: accessToken