2014-01-09 7 views
1

Я хочу, чтобы сохранить facebook аккаунта на ACAccountStore в прошивке,Как сохранить facebook аккаунта в ACAccountStore из facebookSDK

  1. я буду получать accessTocken от facebookSDK, но как получить tocken и секрет
  2. Как сохранить до ACAccountStore

Thanks in Advance.

------ Редактировать --------

У меня есть приложение, которое использует Facebook для входа в систему и после того, как с регистрационной информацией необходимо обмениваться фотографиями, которые он выбрал. Мои прецеденты,

  1. Если учетная запись уже в настройках приложения, то я могу использовать его для входа в систему и доли.

  2. Пользователь, использующий сафари или веб-просмотр для входа в систему, затем как я могу продолжить обмен.

    a. facebook SDK говорит, что если пользователю необходимо использовать встроенный общий контроллер ОС, то login method used to authenticate the user must be native iOS 6.0 authentication..

    b. Если мне нужно обмениваться опцией, предоставляемой с помощью facebook SDK, используйте приложение facebook. Мне не нужен этот параметр, потому что я хочу, чтобы избежать переключения приложений в максимально возможной степени.

Как решить эту проблему ..

+0

Что мотивация для сохранения токена доступа отдельно? –

+0

Нужно сохранить информацию учетной записи facebook в настройках. Тогда я могу использовать социальную среду для обмена с этой учетной записью ... – Rafeek

+0

Если вы используете SDK для Facebook, он автоматически сохраняет информацию о сеансе для вас. Почему бы не использовать API, предоставленные SDK для обмена, а не с использованием социальной структуры? –

ответ

0

, чтобы сделать это, вы должны иметь маркер доступа и секретный,

if (self.accountStore == nil) { 
    self.accountStore = [[ACAccountStore alloc] init]; 
} 

//make credentials to assign to ACAccount 
ACAccountCredential *credential = [[ACAccountCredential alloc] initWithOAuthToken:accesstoken tokenSecret:secret]; 
ACAccountType *acctType =[self.accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook]; 
ACAccount *newAccount = [[ACAccount alloc] initWithAccountType:acctType]; 

newAccount.credential = credential; 

NSDictionary *options = [[NSDictionary alloc] initWithObjectsAndKeys: 
         "xXXXXXX", (NSString *)ACFacebookAppIdKey, 
         [NSArray arrayWithObject:@"basic_info"], (NSString *)ACFacebookPermissionsKey, 
         ACFacebookAudienceEveryone, (NSString *)ACFacebookAudienceKey, 
         nil]; 


[_accountStore requestAccessToAccountsWithType:acctType options:options completion:^(BOOL granted, NSError *error) { 
    if (granted == YES) { 
     [self.accountStore saveAccount:newAccount withCompletionHandler:^(BOOL success, NSError *error) { 

      if (success) { 
       NSLog(@"the account was saved!"); 
      } 
      else { 
       if ([error code] == ACErrorPermissionDenied) { 
        NSLog(@"Got a ACErrorPermissionDenied, the account was not saved!"); 
       } 
       NSLog(@"%@",error); 
      } 
     }]; 
    } 
    else { 
     NSLog(@"%@ ",error); 
    } 
}]; 
+0

Как я получу этот секрет и токен ?. У меня есть accessToken. – Rafeek

+0

NSString * accessToken = [[FBSession.activeSession accessTokenData] accessToken]; – Xeieshan

+0

Я сказал, что у меня есть доступ к Token, но как разделить токен и секрет? – Rafeek