我在使用最新的Facebook SDK(4.6)时遇到了问题,这与iOS 9有关。为了授权用户,我使用FBSDKLoginManager。我尝试设置以下内容:
loginManager.loginBehavior = FBSDKLoginBehaviorNative;
不过,SDK似乎始终使用SFSafariViewController来授权Facebook。
我面临的问题是:如果用户在设备上安装了FB应用程序并使用FacebookAccountA进行登录,然后尝试使用我的应用程序进行身份验证,那么他们将被呈现出这个SFSafariViewController,并且可以使用另一个分离的FB账户FacebookAccountB来对应用程序进行身份验证。
然后,在应用程序中,我尝试使用以下方式共享:
FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
content.contentURL = [NSURL URLWithString:shareString];
FBSDKShareDialog *dialog = [[FBSDKShareDialog alloc] init];
dialog.fromViewController = self;
dialog.shareContent = content;
dialog.delegate = self;
[dialog show];
默认情况下,分享对话框的设置是FBSDKShareDialogModeShareSheet。该分享表格正确地在应用程序中显示,并且发布似乎有效,但链接被发布到FacebookAccountA(原生应用程序帐户),而不是FacebookAccountB(使用我的应用程序进行身份验证的帐户)。
因此,如果用户通过与其本机应用程序登录的不同Facebook帐户对我的应用程序进行身份验证,则可能会将帖子发布到与他们用于身份验证我的应用程序不同的帐户中。有没有办法防止这种情况发生?
提前致谢。