微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – FBSDKLoginBehaviorSystemAccount无效

我在我的目标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 ).

我试过2 ipads,两者都发生了同样的事情.
如果我使用FBSDKLoginBehaviorNative它工作正常(意味着它使用本机应用程序忽略设置).

How to make FBLoginView use system account by default问同样的问题,但唯一的答案是使用loginBehavIoUr,我已经在使用了. (我的评论中没有足够的声誉).

解决方法

Facebook SDK 4.7.0同样的问题.
SDK不使用NativeFlow for iOS版本> = 9.0.0.

https://github.com/facebook/facebook-ios-sdk/blob/master/FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKServerConfigurationManager.m#L226-L228

你可以做的一切:更改SDK中的代码要么更改SDK在[NSUserDefaults standardUserDefaults]存储的数据要么使用旧版本的FB SDK

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐