当通过Web界面删除权限时,iOS app会在登录时堆叠

时间:2012-09-27 17:26:26

标签: ios6 facebook-ios-sdk

iOS6存在问题,即在通过网络界面删除权限后,应用无法重新进行身份验证

其状态在iOS首选项中保持“开启”,这不反映OAuth的当前状态

当应用尝试进行身份验证但收到OAuth错误时,这会导致陷入困境

似乎也无法从内置的facebook偏好设置中手动删除权限

有没有人遇到过类似的问题?任何可能的解决方法?

3 个答案:

答案 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的最新更新正确处理案例