iOS6存在问题,即在通过网络界面删除权限后,应用无法重新进行身份验证
其状态在iOS首选项中保持“开启”,这不反映OAuth的当前状态
当应用尝试进行身份验证但收到OAuth错误时,这会导致陷入困境
似乎也无法从内置的facebook偏好设置中手动删除权限
有没有人遇到过类似的问题?任何可能的解决方法?
答案 0 :(得分:1)
如果iOS缓存中的Facebook访问令牌与Facebook不同步,您可以强制同步凭据:
// Only do this if there is native Facebook Account support (iOS 6+)
BOOL isFacebookAccountsAvailable = (&ACAccountTypeIdentifierFacebook != NULL);
if (isFacebookAccountsAvailable) {
ACAccountStore *accountStore = [ACAccountStore new];
ACAccountType *accountTypeFB = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
NSArray *fbAccounts = [accountStore accountsWithAccountType:accountTypeFB];
for (ACAccount *fbAccount in fbAccounts)
[accountStore renewCredentialsForAccount:fbAccount completion:^(ACAccountCredentialRenewResult renewResult, NSError *error) {
DLog(@"Renew account error: %@", error.localizedDescription)
}];
}
答案 1 :(得分:0)
我有同样的问题。我试图从Facebook网站上的应用程序列表中删除我的应用程序。现在当我退出并重新登录时,我得到了相同的无效令牌。我必须转到iPhone上的设置并禁用我的应用程序的Facebook访问权限。这会重置令牌。
SDK提供了一种方法
[FBSession.activeSession closeAndClearTokenInformation];
但它没有解决这个问题。
答案 2 :(得分:0)
似乎正在使用Facebook SDK的最新更新正确处理案例