我刚刚大修了我的代码库以使用新的 facebook-ios-sdk 3.0(来自以前的版本,2.x 或其他)。
一切都很好,直到我意识到我没有考虑已经授予应用程序权限/使用之前的 SDK 实现登录的用户。所以我尝试检查 accessToken 是否保存在 NSUserDefaults 中,如果是,则调用以打开 session :
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"FBAccessTokenKey"] &&
[[NSUserDefaults standardUserDefaults] objectForKey:@"FBExpirationDateKey"]) {
[FBSession openActiveSessionWithPermissions:permissions
allowLoginUI:allowLoginUI
completionHandler:^(FBSession *session,
FBSessionState status,
NSError *error) {
// deal with state change
}
我的假设是用户不必为 SSO 快速切换应用程序,因为他们已经这样做了。然而,事实确实如此。
我不希望每个现有用户在升级时都需要重新登录。
有没有人不用重新登录就成功升级了?
谢谢
最佳答案
我已经使用 facebook SDK 3.0 升级了一个应用程序,它工作得很好。 Facebook SDK 自行处理 token ,但您仍然可以访问 accessToken。
你可以像这样随时到达它:
NSString *accessToken = [FBSession activeSession].accessToken;
如果没有设置 token ,这将返回 accessToken 或 nil。您甚至可以在 session 中定义 token 缓存规则集。享受吧。
关于objective-c - 将现有访问 token 迁移到 Facebook iOS SDK 3.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12380410/