将 Facebook iOS 集成从 2.x SDK 升级到 3.x SDK 会自动注销之前登录的用户,因为我们过去必须手动处理的身份验证凭据现在由新的 SDK 在幕后处理。 SDK。
有没有办法强制 3.x SDK 使用我们之前手动存储的访问令牌和到期日期进行身份验证,作为一次性身份验证迁移?
提前致谢!
终于想通了。该解决方案涉及使用FBSessionToken缓存策略 http://developers.facebook.com/docs/reference/ios/3.0/class/FBSessionTokenCachingStrategy/他们提供的对象,特别是FBSessionManualTokenCachingStrategy https://github.com/facebook/facebook-ios-sdk/blob/master/src/FBSessionManualTokenCachingStrategy.h:
if (isUserUpgrading) {
FBSessionTokenCachingStrategy *strategy = [[[FBSessionManualTokenCachingStrategy alloc] initWithUserDefaultTokenInformationKeyName:nil] autorelease];
strategy.accessToken = [[NSUserDefaults standardUserDefaults] stringForKey:@"FBSessionToken"]; // use your own UserDefaults key
strategy.expirationDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"FBSessionExpiration"]; // use your own UserDefaults key
FBSession *session = [[[FBSession alloc] initWithAppID:@"MY_APP_ID" // use your own appId
permissions:nil
urlSchemeSuffix:nil
tokenCacheStrategy:strategy] autorelease];
[FBSession setActiveSession:session];
} else {
[FBSession openActiveSessionWithReadPermissions:...]; // normal authentication
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)