Facebook 登录设置失败

Posted

技术标签:

【中文标题】Facebook 登录设置失败【英文标题】:Facebook login setup failure 【发布时间】:2018-12-26 07:41:34 【问题描述】:

我已多次阅读 Facebook“快速入门”指南,但似乎无法弄清楚导致此错误的原因。我正在尝试使用以下函数调用通过 FB 进行身份验证:

FBSDKLoginManager().logIn(withReadPermissions: ["public_profile", "email"], from: self)  (result, error) in


但是,我收到以下错误控制台输出:

-canOpenURL: failed for URL: "fbauth2:/" - error: "The operation could not be completed. (OSStatus error -10814.)"

这是我的 AppDelegate 方法:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool 
    return FBSDKApplicationDelegate.sharedInstance()!.application(application, didFinishLaunchingWithOptions: launchOptions)


func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool 
    return FBSDKApplicationDelegate.sharedInstance()!.application(app, open: url, options: options)

按照快速入门指南的说明,我已将以下键/值添加到我的 Info.plist

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb719997618357318</string>
        </array>
    </dict>
</array>
<key>FacebookAppID</key>
<string>719997618357318</string>
<key>FacebookDisplayName</key>
<string>Test</string>

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbapi</string>
    <string>fb-messenger-share-api</string>
    <string>fbauth2</string>
    <string>fbshareextension</string>
</array>

【问题讨论】:

看到这个寻求帮助:***.com/questions/46319937/… 感谢您的链接,但这无助于解决问题:( 已知错误:github.com/facebook/facebook-swift-sdk/issues/301 你提到的消息,是警告而不是错误。 【参考方案1】:

@Kelvin Lua

你需要在AppDelegate中实现这个方法

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool

    return FBSDKApplicationDelegate.sharedInstance().application (
        application,
        open: url as URL!,
        sourceApplication: sourceApplication,
        annotation: annotation)

当用户从应用程序登录时将调用此方法。试试吧,让我知道它是否有效,否则会尝试帮助您解决其他问题。

【讨论】:

【参考方案2】:

由于最近的 Xcode 10.1 更新,这是 Facebook SDK 中的一个错误。 UIApplicationDelegate 的函数签名略有变化:

// before
func application(_ app: UIApplication,
                 open url: URL,
                 options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool
// before
func application(_ app: UIApplication,
                 open url: URL,
                 options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool

关键变化是options 字典不再由String 类型键入。相反,键被键入为UIApplication.OpenURLOptionsKey,其定义如下:

// Inside definition of `UIApplication`
public struct OpenURLOptionsKey : Hashable, Equatable, RawRepresentable 

    public init(rawValue: String)


目前的解决方案是针对该线程讨论的特定版本的 Facebook SDK:https://github.com/facebook/facebook-swift-sdk/issues/301。

【讨论】:

以上是关于Facebook 登录设置失败的主要内容,如果未能解决你的问题,请参考以下文章

Facebook 登录消息:“URL 被阻止:此重定向失败,因为重定向 URI 未在应用程序的客户端 OAuth 设置中列入白名单。”

Facebook iOS SDK:使用 Facebook 登录失败

xcode 项目总是获得 facebook 登录失败状态

解析 Facebook 登录失败,错误代码 251

Facebook登录一直失败

在 iOS 6 上 Facebook 登录失败