Когда мы используем учетную запись saveAccount:(ACAccount *) класса ACAccountStore?

Пожалуйста, уточните мне, когда мы используем этот метод?- (void)saveAccount:(ACAccount *)account withCompletionHandler:(ACAccountStoreSaveCompletionHandler)completionHandler

Как я знаю, мы получаем доступ к учетной записи через OAuth и не получаем учетные данные пользователя. Итак, как мы можем создать учетную запись? Я обнаружил, что ACAccount имеет единственный метод создания:- (id)initWithAccountType:(ACAccountType *)typeЧто на самом деле происходит, когда мы создаем аккаунт таким образом? И можем ли мы сохранить его сейчас?

1 ответ

Решение

Хорошо, наконец я нашел информацию об этом. Рассмотрим следующий сценарий: наше приложение уже авторизовано пользователем, и у нас есть как токен доступа, так и секрет. Теперь мы хотим поддержать новые функции iOS 6 и создать учетную запись Twitter (например) в настройках. Для этого нам нужно перенести эти токены в центральное хранилище учетных записей. Вот как:

- (void)storeAccountWithAccessToken:(NSString *)token secret:(NSString *)secret {
    //We start creating an account by creating the credentials object
    ACAccountCredential *credential = [[ACAccountCredential alloc] initWithOAuthToken:token tokenSecret:secret];
    ACAccountType *twitterAcctType =[self.accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
    ACAccount *newAccount = [[ACAccount alloc] initWithAccountType:twitterAcctType];
    //Here we assign credentials and now can save account
    newAccount.credential = credential;

    [self.accountStore saveAccount:newAccount withCompletionHandler:^(BOOL success, NSError *error) {

        if (success) {
            NSLog(@"the account was saved!");
        }
        else {
            //Handle error here
        }
    }];
}

Подробнее об этом читайте здесь, как перенести токены

Другие вопросы по тегам