Как сохранить учетную запись Facebook в ACAccountStore с facebookSDK

Я хочу сохранить учетную запись Facebook в ACAccountStore в iOS,

  1. я получу accessTocken из facebookSDK но как получить токен и секрет
  2. Как сохранить это в ACAccountStore

Заранее спасибо.

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

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

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

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

    а. Facebook SDK говорит, что если пользователю нужно использовать встроенный контроллер ОС, то login method used to authenticate the user must be native iOS 6.0 authentication.,

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

Как это решить..

1 ответ

Для этого у вас должен быть ключ доступа и секрет,

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);
    }
}];
Другие вопросы по тегам