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 设置中列入白名单。”