使用未经授权的Twitter帐户的用户在使用我的应用时遇到问题

时间:2013-12-14 14:23:40

标签: ios objective-c twitter acaccount acaccountstore

当用户升级到iOS 7时,他们不得不重新授权他们的Twitter帐户。目前,我遇到的问题似乎是因为用户有多个帐户,其中一个或多个帐户未经过验证。

当用户有多个帐户,并且需要授权时,运行此方法将为完成处理程序提供YES,并且出现nil错误:

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 个答案:

答案 0 :(得分:2)

如果用户帐户不同步,您应该续订用户帐户。如果用户更改了密码或帐户会话已过期,则可能会发生这种情况。

您可以使用以下通知知道: ACAccountStoreDidChangeNotification