我正在我的Objective-C项目中使用Facebook SDK 4.3.0。在那里,我需要使用在设置中配置的Facebook帐户进行登录。
为此,我正在使用以下代码:
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
login.loginBehavior = FBSDKLoginBehaviorSystemAccount;
[login logInWithReadPermissions:@[@"public_profile", @"email", @"user_friends"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error || result.isCancelled){
if (result.isCancelled) {
NSLog(@"is canceled");
} else {
NSLog(@"is not canceled");
}
NSLog(@"facebook login error:%ld %@",(long)error.code,[error localizedDescription]);
[self showErrorWithMessage:@"Couldn't login with Facebook"];
return;
}
FBSDKAccessToken *token = [FBSDKAccessToken currentAccessToken];
NSLog(@"facebook access token data: %@",token.tokenString);
[[ApiClient shared] requestAccessToAccountWithFacebookTokenString:token.tokenString];
}];
在iPad中设置了Facebook帐户后,我运行它,但是登录失败,并出现错误描述“该设备上未配置Facebook帐户”,错误代码为307(根据FBSDKLoginConstants.h的说法,它是FBSDKLoginSystemAccountUnavailableErrorCode)。
我在两个iPad上都尝试过,两者都有同样的问题。 如果我使用FBSDKLoginBehaviorNative,它可以正常工作(这意味着它忽略设置并使用本地应用程序)。 如何使FBLoginView默认使用系统帐户提出了相同的问题,但唯一的答案是使用loginBehaviour,而我已经在使用它了。(我没有足够的声望在评论中提问)。