繁体   English   中英

Facebook SDK 4.0-loginButton didCompleteWithResult中的currentAccessToken仍然为零

[英]Facebook SDK 4.0 - currentAccessToken still nil within loginButton didCompleteWithResult

我正在升级到Facebook SDK 4.X,无法确定登录后立即执行的操作。

在Facebook代表的loginButton didCompleteWithResult方法中,它成功返回(跳过if语句error ),因此对于我的系统,我需要在服务器上注册用户,因此在Facebook SDK的早期版本中,我会将访问令牌发送到我的服务器。

但是在此didCompleteWithResult方法中, [FBSDKAccessToken currentAccessToken]仍返回nil

我所有的AppDelegate生命周期方法都返回了facebook函数,所以我不确定其他可能会发生的错误,或者我应该在哪里填充AccessToken

您可能忘记了didFinishLaunchingWithOptions方法中的FBSDKApplicationDelegate调用。

在此处查看答案: https : //stackoverflow.com/a/30406194/561485

该文档解释了有关application:didFinishLaunchingWithOptions:方法的更多信息。

就我而言,当我也使用另一个Google登录时,我遇到了这个问题。 因此,该URL不是由facebook sdk处理的。 我必须更改应用程序委托方法,如下所示:

 @available(iOS 9.0, *)
func application(_ application: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any])
    -> Bool {
       let gHandle = GIDSignIn.sharedInstance().handle(url,
                                                 sourceApplication:options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String,
                                                 annotation: [:])
        let fHandle = FBSDKApplicationDelegate.sharedInstance().application(application, open: url, options: options)
        return gHandle || fHandle

}

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
    return FBSDKApplicationDelegate.sharedInstance().application(application, open: url, sourceApplication: sourceApplication, annotation: annotation)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM