Facebook 和 Google+ 登录

Posted

技术标签:

【中文标题】Facebook 和 Google+ 登录【英文标题】:Facebook and Google+ Sign-In 【发布时间】:2015-07-04 14:01:56 【问题描述】:

我在我的应用中同时使用 Google+ 和 Facebook。 我的问题是它们都需要 appDelegate 中的 OpenURL 方法。

对于 Facebook 登录:

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool 
    return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
    

对于 Google+ 登录:

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool 
    return GPPURLHandler.handleURL(url, sourceApplication: sourceApplication, annotation: annotation)

如何在同一个应用中同时使用 google+ 和 facebook?

【问题讨论】:

Solution 【参考方案1】:

针对 Xcode 7.0 和 Swift 2.0 更新的解决方案

return FBSDKApplicationDelegate.sharedInstance().application(app, openURL: url, sourceApplication: options["UIApplicationOpenURLOptionsSourceApplicationKey"] as! String, annotation: nil)  ||
            GPPURLHandler.handleURL(url, sourceApplication: options["UIApplicationOpenURLOptionsSourceApplicationKey"] as! String, annotation: nil)

**

Swift 3.0另一种解决方案

**

 func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool 
        if url.scheme == "fb1675189366130133" 
        return FBSDKApplicationDelegate.sharedInstance().application(application,
                                                         open: url,
                                                         sourceApplication: sourceApplication,
                                                         annotation: annotation)
        else
            return GIDSignIn.sharedInstance().handle(url, sourceApplication: sourceApplication, annotation: annotation)
        

【讨论】:

【参考方案2】:

我找到了解决方案,使用这段代码:

if url.scheme == "fb1111111111111" 
    return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
 else 
    return GPPURLHandler.handleURL(url, sourceApplication: sourceApplication, annotation: annotation)
    

【讨论】:

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

Backand- 使用 facebook 和 google 登录错误

自定义 Google Plus 登录按钮和 Facebook 登录按钮

为啥在 google play store 上发布后 google 和 facebook 登录不起作用

Facebook 和 Google 登录 - 冲突 (Xcode)

将 facebook 和 google 集成在同一个应用程序中,并允许用户同时登录

Flutter Firebase Google Apple Facebook 登录