gpt4 book ai didi

ios6 - iOS SDK 似乎无法处理 iOS 6 中已撤销的访问 token

转载 作者:行者123 更新时间:2023-12-05 01:18:23 24 4
gpt4 key购买 nike

在我的应用程序获得对在 iOS 6 设置中注册的 facebook 帐户的访问权限后,我从我的 facebook 隐私设置中撤销了该应用程序。然后我尝试通过调用 [FBSession openActiveSessionWithReadPermissions...] 将我的应用程序与 facebook 重新连接,并且该方法使用旧的访问 token 创建 facebook session ,该 token 已经是无效的,而无需再次请求权限授予。

我认为这个问题与这个问题( Facebook SDK 3.1 - Error validating access token )有关,据说在 SDK 3.1.1 中已修复。

但是,我正在使用 SDK 3.1.1 并通过在发生无效访问 token 错误时手动调用 accountStore refreshCredentialsForAccount 来解决此问题。

最佳答案

基于 this thread ,我发现验证有效 session 的唯一方法是执行简单的图形 API 调用。如果出现错误,FBSession.activeSession.isOpen将返回 NO ,这很好地表明 token 已过期。

+ (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 token ,因此重新确保 token 在需要时有效是一个很好的做法。

关于ios6 - iOS SDK 似乎无法处理 iOS 6 中已撤销的访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com