iOS 9 Facebook SDKlogin/共享

我遇到了使用iOS 9上最新的Facebook SDK(4.6)的问题。要授权用户,我使用FBSDKLoginManager。 我试过设置这个:

loginManager.loginBehavior = FBSDKLoginBehaviorNative; 

但是SDK似乎总是使用SFSafariViewController来授权Facebook。

这是我面临的问题。 如果用户使用FacebookAccountA在其设备上安装了FB应用程序,然后尝试使用我的应用程序进行身份validation,则会显示此SFSafariViewController,并且可以使用FacebookAccountB(一个单独的FB帐户)对应用程序进行身份validation。

然后在应用程序中,我尝试分享以下内容:

 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。 分享表格正确显示在应用程序中,并且该post似乎可以正常工作,但该链接已发布到FacebookAccountA(本机应用程序帐户),而不是FacebookAccountB(通过我的应用程序进行身份validation的那一个)。

因此,如果用户使用不同的Facebook帐户对自己的应用程序进行身份validation,而不是在其本机应用程序中login,则最终可能会发布到与用于validation应用程序的帐户不同的帐户。 有没有办法来防止这一点?

提前致谢。

这是devise。

在FB SDK v4.6和v3.24中,我们默认为Safari View Controller,而不是快速应用程序切换到原生Facebook应用程序。 在iOS 9中,快速应用切换stream程会生成两个插页式广告“ExampleApp想要打开Facebook”和“Facebook想要打开ExampleApp”。

对于在iOS上loginSafari的数亿人来说,他们的体验非常棒。

使用SLComposerViewController进行Fb共享。 它将使用您的ios设备默认Facebook sdkslogin或您已安装的应用程序login。

以下是参考资料: SLComposeViewController共享教程

希望这可以帮助!

是的,它是由iOS 9devise的,但我们可以轻松解决它!

 let dialog = FBSDKShareDialog() dialog.mode = .Native if !dialog.canShow() { self.mode = .Automatic } 

好极了!