Ios6 iOS SDK似乎无法处理iOS 6中吊销的访问令牌
在我的应用程序访问在iOS 6设置中注册的facebook帐户后,我从facebook的隐私设置中撤销了该应用程序。然后我尝试通过调用[FBSession openActiveSessionWithReadPermissions…]将我的应用程序与facebook重新连接,该方法使用旧的访问令牌创建facebook会话,该令牌已无效,无需再次请求权限授予 我认为这个问题与这个问题()有关,据说在SDK 3.1.1中已经解决了这个问题 但是,我正在使用SDK 3.1.1,并通过在出现无效访问令牌错误时手动调用accountStore RenewCredentials for Account thing来解决此问题。基于,我发现验证有效会话的唯一方法是执行简单的graph API调用。如果出现错误,Ios6 iOS SDK似乎无法处理iOS 6中吊销的访问令牌,ios6,single-sign-on,facebook-ios-sdk,Ios6,Single Sign On,Facebook Ios Sdk,在我的应用程序访问在iOS 6设置中注册的facebook帐户后,我从facebook的隐私设置中撤销了该应用程序。然后我尝试通过调用[FBSession openActiveSessionWithReadPermissions…]将我的应用程序与facebook重新连接,该方法使用旧的访问令牌创建facebook会话,该令牌已无效,无需再次请求权限授予 我认为这个问题与这个问题()有关,据说在SDK 3.1.1中已经解决了这个问题 但是,我正在使用SDK 3.1.1,并通过在出现无效访问令牌错
FBSession.activeSession.isOpen
将返回NO
,这很好地表明令牌已过期
+ (void) ValidateSession
{
FBRequest *userDetails = [[FBRequest alloc] initWithSession:FBSession.activeSession graphPath:@"/me"];
[userDetails startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary *result, NSError *error) {
if (error) {
if (FBSession.activeSession.isOpen) {
// Less probable, so check error code.
} else {
// Bingo: here we know for sure that the token was useless.
// Expected behavior: reauthorize.
}
} else if (result) {
NSLog(@"%@", result);
// token is valid, continue
}
}];
}
iOS似乎在应用程序被删除后仍保留Facebook代币,因此,在需要时重新确认代币有效是一个很好的做法。我遇到了与您在这里描述的相同的问题,我已经能够使用您指出的公认答案解决它(最好说绕过它)。谢谢