ios - SWIFT - 使用 FB App 时出现 FBSDKLoginManager 错误

标签 ios swift facebook ios11 fbsdkloginkit

我正在使用 FBSDKLoginManager 接收 token 供以后使用(FB 发布),并在确认访问后进入无限循环。

当调用FBSDKLoginManager()时,出现如下弹窗(对不起,是德语...这是官方的Facebook弹窗,用户可以选择是手动登录还是使用 FB 应用程序)。

Facebook Popup Screen

现在出现如下错误:

  • 如果我使用第二个按钮(通过电话号码或电子邮件地址登录),一切正常。该函数返回一个 token ,我可以在我的应用程序中继续。

  • 错误:如果我使用第一个按钮(使用 Facebook-App 登录),Facebook 应用程序打开,我可以在 FB 中设置所有隐私设置,并确认。确认访问后,FB-App 自动关闭并返回到相同的弹出屏幕,没有任何变化。返回此屏幕后没有任何操作发生...

我不清楚问题出在哪里...没有错误消息。由于使用电子邮件登录时一切正常,问题一定出在 FB-App 的返回上。电子邮件登录通过 Safari 工作,在错误情况下会中断 FB-App。

let login: FBSDKLoginManager = FBSDKLoginManager()
login.logIn(withPublishPermissions: ["publish_actions"], from: self) { (result, error) in
if (error != nil) {
    print("publish_actions: \(error!)")
} else if (result?.isCancelled)! {
    print("publish_actions: Canceled")
} else if (result?.grantedPermissions.contains("publish_actions"))! {
    //print("publish_actions: permissions granted: \(String(describing: result?.token.tokenString))")

    UserDefaults.standard.set(result?.token.tokenString, forKey: "facebook_token")
}

添加的框架:Bolts/CoreKit/LoginKit

开发环境: Xcode 9.2/iPhone 6s 和 iOS 11.2/安装了最新的 Facebook 应用程序。

最佳答案

我通过向 FB SDK 添加以下缺少的调用来解决:

[[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation];

里面

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation AppDelegate 方法。

关于ios - SWIFT - 使用 FB App 时出现 FBSDKLoginManager 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49167419/

相关文章:

ios - 通过点击外部关闭 UIAlertViewController

iphone - iOS 的 Quartz Composer 替代品

swift cocoa : Change NSScrollView frame size with animation

ios - SWRevealViewController:当 self.revealViewController().revealToggleAnimated(true) 时 frontViewController 上的回调是什么

ios - 显示下拉表时的自动布局问题

jquery - 检测 facebook like 已满载

java - Android Facebook 登录 API 仅返回名称和 ID

php - Safari 上的 facebook iframe 跨域 cookie 问题

iphone - 以编程方式组合 UITabController 和 UINavigation Controller http ://t. co/R52RlUL UITabController 和 UINavigation Controller 以编程方式

ios - 在连接到 IPv6 网络的 Wi-Fi 上运行 iOS 10.0 的 iPad 和 iPhone 上使用 UIWebview 时崩溃