我使用FBSDKLoginManager
在我的应用中实施Facebook登录。 Facebook docs似乎暗示这会为后续应用启动保存令牌,以便用户不必每次都登录:
FBSDKLoginManager为您设置此令牌,当它设置currentAccessToken时,它还会自动将其写入钥匙串缓存。
我在应用启动时尝试从所述缓存中检索此令牌,或者如果找不到它,则显示我应用的Facebook登录屏幕:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[FBSDKProfile enableUpdatesOnAccessTokenChange:YES];
if ([FBSDKAccessToken currentAccessToken]) {
// user is logged in, continue to app's main screen
} else {
// show login screen
}
//...
}
每次都会显示登录屏幕。 Facebook文档没有解释如何处理这个非常简单的用例。我错过了什么吗?
答案 0 :(得分:2)
你需要调用" [[FBSDKApplicationDelegate sharedInstance]应用程序:application didFinishLaunchingWithOptions:launchOptions]"在尝试获取缓存令牌之前。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
...