我有一个iOS应用程序,使用Facebook API已经运行了大约一年。
最近我更新到最新版本的Facebook API。
我注意到的是,当我现在调用openActiveSessionWithReadPermissions时,即使用户在iOS设备的“设置”中登录到Facebook,我也始终会获得Web UI。在过去,我通常会得到一个原生确认对话框。
这是API中的故意更改还是我需要查看我正在做的事情?
感谢。
答案 0 :(得分:1)
您可以做的一件事就是使用一种不同的方法,您可以根据doc / *指定行为,FBSessionLoginBehaviorUseSystemAccountIfPresent。尝试Facebook登录,更喜欢系统帐户并在必要时回退到快速应用程序切换* /
facebookSession = [[FBSession alloc] initWithPermissions:[NSArray arrayWithObjects:@"public_profile", @"email",nil]];
[FBSession setActiveSession:facebookSession];
[facebookSession openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent
completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
if (!error) {
[self fetchFacebookProfileData];
} else {
if (loginCompleteBlock) {
if (error.userInfo && [[error.userInfo objectForKey:@"NSLocalizedFailureReason"] isEqualToString:@"com.facebook.sdk:UserLoginCancelled"]) {
loginCompleteBlock (nil, error, YES);
} else {
loginCompleteBlock (nil, error, NO);
}
}
loginCompleteBlock = nil;
}
}];