iOS 9 Facebook SDK 登录/分享

     2023-03-17     214

关键词:

【中文标题】iOS 9 Facebook SDK 登录/分享【英文标题】:iOS 9 Facebook SDK Login/Share 【发布时间】:2015-09-23 17:17:58 【问题描述】:

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

loginManager.loginBehavior = FBSDKLoginBehaviorNative;

但 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];

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

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

提前致谢。

【问题讨论】:

如果您想通过 facebook 应用程序登录,请查看我的答案***.com/a/32821579/3002083 谢谢,看来唯一的选择就是你所说的。我不介意通过 SFSafariViewController 登录,如果它没有导致我看到的问题。 @haplo1384 你有解决上述问题的办法吗? @AbilashBNair 我已经离开这个项目,最近没有测试过。在下面发布的答案中,Simon Cross 表示这是 Facebook 正在解决的问题,所以我希望他们现在已经解决了。 【参考方案1】:

这是设计使然。

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

对于在 iOS 上登录 Safari 的数亿人来说,他们有很棒的体验。

【讨论】:

感谢 Simon,我对使用 Safari 视图控制器对用户进行身份验证没有任何问题。问题是,即使在使用 Safari 视图控制器进行身份验证后,FBSDKShareDialog 似乎默认使用本机应用程序的 Facebook 帐户,这可能不同于该人用于通过 Safari 视图控制器对我的应用程序进行身份验证的 Facebook 帐户.这是设计使然吗? @haplo1384 它的“设计”,因为它是一个已知问题。我们正在寻找检测和缓解这种情况的方法。 @Simon Cross 据我所知,您有近 10 亿人在使用 Facebook APP。只需要按两个按钮而不是必须输入用户名和密码的用户群不是更大吗? @Simon Cross,不得不在 Safari 中输入用户名和密码似乎比这两个插页式广告增加了更多的摩擦。您是否了解两种方法之间的下降率? 我可以使用 Sarari 视图控制器 - 我只是担心许多用户不知道他们的 fb 密码。通常人们登录到 fb 应用程序并且从不退出。他们将不得不竭尽全力重置密码并完成所有这些额外的工作,以便他们可以使用您的应用程序。【参考方案2】:

使用 SLComposerViewController 进行 Fb 分享。它将使用您的 ios 设备默认 Facebook sdks 登录名或您安装的应用程序登录名。

以下是对此的参考: Tutorial for SLComposeViewController sharing

希望这会有所帮助!

【讨论】:

感谢您的回答,但我想使用用于验证我的应用程序的 Facebook 凭据(通过 SFSafariViewController)分享。这不会那样做吧? 对我来说也是同样的问题。有什么解决办法吗?【参考方案3】:

是的,这是 iOS 9 上的设计,但我们可以轻松解决它!

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

耶!

【讨论】:

Facebook iOS 9 SDK 登录重定向到 Safari 上的 mbasic.facebook.com

】FacebookiOS9SDK登录重定向到Safari上的mbasic.facebook.com【英文标题】:FacebookiOS9SDKloginredirectstombasic.facebook.comonSafari【发布时间】:2016-05-0315:43:04【问题描述】:我正在使用iOS9FacebookSDK来管理登录。在iOS9之前,该过程运行良好。它是... 查看详情

更新 iOS 9 和 Facebook sdk 4.6 后,登录窗口未打开

】更新iOS9和Facebooksdk4.6后,登录窗口未打开【英文标题】:AfterupdateiOS9andFacebooksdk4.6theloginwindownotopen【发布时间】:2015-09-2422:20:17【问题描述】:我将我的Xcode更新为7,将Facebook更新为4.6sdk。这是我的警告:Warning:Attempttopresent<F... 查看详情

iOS 9 Facebook SDK 中的登录错误

】iOS9FacebookSDK中的登录错误【英文标题】:LoginerroriniOS9FacebookSDK【发布时间】:2015-10-2813:52:24【问题描述】:我在***上看到了很多关于这个问题的问题,但没有一个能解决我的问题。我创建了一个仅包含FB登录按钮的示例应用程... 查看详情

Facebook 使用 Parse SDK 登录(iOS 9、Xcode 7.1、Swift 2.1)

】Facebook使用ParseSDK登录(iOS9、Xcode7.1、Swift2.1)【英文标题】:FacebookloginwithParseSDK(iOS9,Xcode7.1,Swift2.1)【发布时间】:2015-10-3020:08:33【问题描述】:我一直在尝试实现Facebook登录。正如标题所说,我正在使用Xcode7.1、Swift2.1、iOS9.1... 查看详情

Facebook SDK - iOS6 登录弹出窗口无法关闭

】FacebookSDK-iOS6登录弹出窗口无法关闭【英文标题】:FacebookSDK-iOS6loginpopupcannotbedismissed【发布时间】:2012-10-0722:51:53【问题描述】:在我的iPhone应用中,我希望用户能够在Facebook上分享链接。当他们点击“分享”时,我使用以下... 查看详情

Facebook SDK 登录永远不会在 iOS 9 上回调我的应用程序

】FacebookSDK登录永远不会在iOS9上回调我的应用程序【英文标题】:FacebookSDKloginnevercallsbackmyapplicationoniOS9【发布时间】:2015-08-3017:24:02【问题描述】:我已按照this指南更新我的应用程序,以便在使用iOS9SDK构建时使用FacebookSDK4.6正... 查看详情

更新到 IOS 9 后无法登录 Facebook

】更新到IOS9后无法登录Facebook【英文标题】:UnabletologintoFacebookafterupdatingtoIOS9【发布时间】:2016-02-0821:07:19【问题描述】:更新到IOS9后,我无法让我的应用登录Facebook。我正在使用Facebook-iOS-SDK(4.0.1)。我按照https://developers.facebook.... 查看详情

facebook sdk 登录安卓,分享和喜欢按钮

】facebooksdk登录安卓,分享和喜欢按钮【英文标题】:facebooksdkloginforandroid,shareandlikebuttons【发布时间】:2016-08-1819:19:16【问题描述】:我已经在我的应用中实现了facebook登录。我遇到的问题是:我正在使用facebook的本机登录,我... 查看详情

facebook分享问题,登录方式如何影响分享行为?

】facebook分享问题,登录方式如何影响分享行为?【英文标题】:Problemswithfacebookshare,howdoesloginmethodinfluencesharebehavior?【发布时间】:2013-04-0908:08:54【问题描述】:我有一个ios6应用程序,首页上有Facebook登录信息。我正在使用facebo... 查看详情

iOS Facebook SDK 分享照片和从 Facebook 应用程序注销后

】iOSFacebookSDK分享照片和从Facebook应用程序注销后【英文标题】:iOSFacebookSDKsharephotoandafterlogoutfromFacebookapp【发布时间】:2014-09-1910:15:11【问题描述】:我需要在展台的图腾上安装我的应用程序。申请流程为:1)用户拍照2)用户点... 查看详情

如何在 Facebook iOS SDK 中发布或分享?

】如何在FacebookiOSSDK中发布或分享?【英文标题】:HowtopostorshareinFacebookiOSSDK?【发布时间】:2016-02-1904:29:12【问题描述】:我正在尝试使用FacebookSDK在我的fb中发布消息或分享照片。我已经按照如何安装它的步骤进行操作。我已经... 查看详情

用于 iOS 登录问题的 Facebook SDK 3.1

】用于iOS登录问题的FacebookSDK3.1【英文标题】:FacebookSDK3.1foriOSloginissues【发布时间】:2012-11-0813:30:01【问题描述】:我在我的ios应用程序中使用Facebooksdk3.1在朋友墙上分享链接。我尝试在applicationDidFinishLaunching方法中打开一个新... 查看详情

带有发布权限回调的 Facebook iOS 3.1 sdk 登录

】带有发布权限回调的FacebookiOS3.1sdk登录【英文标题】:FacebookiOS3.1sdkloginwithpublishpermissioncallbacks【发布时间】:2012-10-0614:17:30【问题描述】:我在使用facebook3.1iossdk中的发布权限登录时遇到问题。我的应用有一个分享视频的按钮... 查看详情

iOS Facebook SDK 原生分享

】iOSFacebookSDK原生分享【英文标题】:iOSFacebookSDKNativeSharing【发布时间】:2015-03-1413:58:13【问题描述】:我已使用以下代码通过本机Facebook应用程序(如果已安装)将链接的Facebook共享与描述、标题等集成:FBLinkShareParams*params=[[FBL... 查看详情

无法识别的选择器在 iOS9 上的 facebook sdk 4.6 中发送到 facebook 登录管理器的实例

】无法识别的选择器在iOS9上的facebooksdk4.6中发送到facebook登录管理器的实例【英文标题】:unrecognizedselectorsenttoinstanceatfacebookloginmanagerinfacebooksdk4.6oniOS9【发布时间】:2015-09-2110:45:13【问题描述】:您好,我刚刚将我的应用升级到i... 查看详情

分享图片蚂蚁文字 Facebook SDK 4.0 iOS

】分享图片蚂蚁文字FacebookSDK4.0iOS【英文标题】:ShareimageanttextFacebookSDK4.0iOS【发布时间】:2015-04-2815:51:21【问题描述】:我正在尝试使用Facebook的新SDK4.0共享图像和文本,但我无法做到。要分享图片,我有以下代码:FBSDKSharePhoto*... 查看详情

Facebook iOS SDK - 分享用户照片

】FacebookiOSSDK-分享用户照片【英文标题】:FacebookiOSSDK-shareuserphoto【发布时间】:2012-12-0504:24:56【问题描述】:我需要将照片上传到用户的相册并让用户分享一些消息。我已经使用[FBRequestConnectionstartForUploadPhoto:photocompletionHandler:h... 查看详情

iOS:Facebook SDK AppInvite 错误 9

】iOS:FacebookSDKAppInvite错误9【英文标题】:iOS:FacebookSDKAppInviteerror9【发布时间】:2016-04-1017:24:32【问题描述】:由于某种原因,我不断收到AppInvite对话框的错误...通过documentation为iOS9设置info.plist,设置项目上所有Facebook的参数后... 查看详情