iOS 9 Facebook SDK登录/共享

hap*_*384 9 iphone facebook ios facebook-sdk-4.0 ios9

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

loginManager.loginBehavior = FBSDKLoginBehaviorNative;
Run Code Online (Sandbox Code Playgroud)

但SDK似乎仍然总是使用SFSafariViewController来授权Facebook.

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

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

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];
Run Code Online (Sandbox Code Playgroud)

共享对话框的默认设置最终是FBSDKShareDialogModeShareSheet.共享表正确地显示在应用程序中,并且帖子似乎有效,但链接发布到FacebookAccountA(本机应用程序帐户),而不是FacebookAccountB(通过我的应用程序进行身份验证的链接).

因此,如果用户碰巧使用不同于他们在其原生应用上登录的Facebook帐户对我的应用进行身份验证,他们最终可能会发布到与用于验证我的应用的帐户不同的帐户.有办法防止这种情况吗?

提前致谢.

Sim*_*oss 5

这是设计的.

在FB SDK v4.6和v3.24中,我们默认使用Safari View Controller,而不是快速应用程序切换到本机Facebook应用程序.在iOS 9中,快速应用程序切换流程生成两个插页式广告"ExampleApp想要打开Facebook"和"Facebook想要打开ExampleApp".

对于在iOS上登录Safari的数亿人来说,他们拥有非常棒的体验.

  • @Simon Cross,在Safari中输入用户名和密码似乎比两个插页式广告增加了更多的摩擦力.您是否了解两种方法之间的下降率? (9认同)
  • @Simon Cross据我所知,你有近十亿人在使用Facebook APP.用户群是否更大,只需要按两个按钮而不是必须输入用户名和密码的按钮? (3认同)
  • 谢谢Simon,我对用于验证用户身份的Safari View Controller没有任何问题.问题是,即使在使用Safari View Controller进行身份验证后,FBSDKShareDialog似乎默认使用本机应用程序的Facebook帐户,这可能与此人用于通过Safari View Controller验证我的应用程序的Facebook帐户不同.这是设计的吗? (2认同)