Пользователи с неавторизованными учетными записями Twitter, имеющие проблемы с моим приложением

Когда пользователи обновились до iOS 7, им пришлось повторно авторизовать свои учетные записи в Twitter. В настоящее время у меня есть проблема, которая возникает из-за того, что у пользователя несколько учетных записей, одна или несколько из которых не подтверждены.

Когда у пользователя есть несколько учетных записей, и одна требует авторизации, запуск этого метода даст обработчик завершения с YES и нулевой ошибкой:

ACAccountStore *accountStore = [[ACAccountStore alloc] init];
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
[accountStore requestAccessToAccountsWithType:accountType options:nil completion:^(BOOL granted, NSError *error) {
}];

Продолжая, приложение не сможет получить доступ к Twitter с этой учетной записи, что приведет к сбою.

Чтение документации показывает, что ACAccount имеет credential собственность, но это this property is inaccessible after the account is saved, так что это не может быть использовано в качестве индикатора.

ACAccountStore имеет другой метод:

- (void)renewCredentialsForAccount:(ACAccount *)account completion:(ACAccountStoreCredentialRenewalHandler)completionHandler

Но это заставляет пользователя обновлять свои учетные данные, когда он вызывается, что не идеально, если они уже есть.

Как я могу узнать, требует ли учетная запись обновить свои учетные данные или она доступна?

1 ответ

Решение

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

Вы можете знать, что с помощью следующего уведомления: ACAccountStoreDidChangeNotification

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