无法使用Swift在Xcode中使用Parse 1.7.2和Facebook SDK 4.1创建新用户

阿明

我已经将我的应用程序链接到Facebook SDK和Parse,但是现在我试图将Facebook的登录信息与Parse集成在一起,但仍然遇到问题。我当前的问题是该应用程序正在运行,但是当我按FBSDKLoginButton时,它将转到safari并询问权限(应按要求进行),但是当按下okay时,它只是返回到该应用程序的登录屏幕,就像什么也没有发生一样,并且没有不能对应用程序的其余部分执行搜索。我还检查了Parse,它没有创建新的PFUser。我将在下面的LoginViewController中发布我认为可能相关的代码(这意味着该代码将缺少诸如viewDidLoad之类的部分,因为其中没有任何内容会影响登录过程):

import UIKit
import Parse
import FBSDKCoreKit
import FBSDKLoginKit

protocol LoginViewControllerDelegate {
    func onRegister(loginViewController : LoginViewController)
    func onFacebookLogin(loginViewController : LoginViewController)
    func onLogin(loginViewController : LoginViewController)
}

class LoginViewController: UIViewController {

@IBAction func onFacebookLogin(sender: AnyObject?) {

    // Set permissions required from the facebook user account
    let permissions = [ "user_about_me", "user_relationships", "user_location", "user_birthday", "public_profile", "user_friends", "user_email", "user_gender"]

    // Login PFUser using Facebook
    PFFacebookUtils.logInInBackgroundWithReadPermissions(permissions, block: {
        (user: PFUser?, error: NSError?) -> Void in
        if let user = user {
            if user.isNew {
                println("User signed up and logged in through Facebook!")
                self.loadData()
                self.performSegueWithIdentifier("loggedIn", sender: self)
            } else {
                println("User logged in through Facebook!")
                self.performSegueWithIdentifier("loggedIn", sender: self)
            }
            if self.delegate != nil {
                self.delegate!.onFacebookLogin(self)
            }
        } else {
            println("Uh oh. The user cancelled the Facebook login.")
        }
    })
}

func loadData(){
    let request:FBSDKGraphRequest = FBSDKGraphRequest()
    request.startWithCompletionHandler { (connection:FBSDKGraphRequestConnection!, result:AnyObject!, error:NSError!) -> Void in
        if error == nil{
            if let dict = result as? Dictionary<String, AnyObject>{
                let name:String = dict["first_name"] as AnyObject? as! String
                let facebookID:String = dict["id"] as AnyObject? as! String
                let email:String = dict["email"] as AnyObject? as! String
                let birthday:String = dict["birthday"] as AnyObject? as! String
                let gender:String = dict["gender"] as AnyObject? as! String

                let hostCount:Int = 0
                let attendCount:Int = 0

                let pictureURL = "https://graph.facebook.com/\(facebookID)/picture?type=large&return_ssl_resources=1"

                var URLRequest = NSURL(string: pictureURL)
                var URLRequestNeeded = NSURLRequest(URL: URLRequest!)


                NSURLConnection.sendAsynchronousRequest(URLRequestNeeded, queue: NSOperationQueue.mainQueue(), completionHandler: {(response: NSURLResponse!,data: NSData!, error: NSError!) -> Void in
                    if error == nil {
                        var picture = PFFile(data: data)
                        PFUser.currentUser()!.setObject(picture, forKey: "profilePicture")
                        PFUser.currentUser()!.saveInBackground()
                    }
                    else {
                        println("Error: \(error.localizedDescription)")
                    }
                })
                PFUser.currentUser()!.setValue(name, forKey: "name")
                PFUser.currentUser()!.setValue(email, forKey: "email")
                PFUser.currentUser()!.setValue(birthday, forKey: "birthday")
                PFUser.currentUser()!.setValue(gender, forKey: "gender")
                PFUser.currentUser()!.setValue(hostCount, forKey: "hostCount")
                PFUser.currentUser()!.saveInBackground()
            }
        }
    }
}
}
阿明

在更新为Parse 1.7.4并删除旧的PFFacebookUtils框架(保留PFFacebookUtilsV4)之后,似乎可以自己解决问题!我希望这个答案可以帮助其他有同样问题的人。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法在Active Directory中创建新用户(将Samba4用作DC和AD)

使用Rally App SDK创建/更新用户故事

无法创建新用户

使用Spring Security创建新用户时无法同时使用角色和权限

如何使用Django Rest框架和自定义用户模型创建新用户

Rails 4:无法通过登录为用户创建会话,尽管该会话是在创建新用户时创建的

Swift2 iOS-注销当前用户并创建新用户会保留新用户的旧用户默认值

(Windows)在postgres9.4中使用登录名,createdb和createrole创建新用户,但无法登录?

如何使用AWS Cognito Ruby SDK注册新用户?

使用 php sdk 注册 firebase 新用户

如何更新用户标签?使用Quickblox javascript SDK

无法在Laravel 4中使用Facebook的PHP SDK获取用户个人资料

使用Google OAuth2.0的Devise和Omniauth为什么不创建新用户?

WSO2is SCIM 2使用自定义字段创建新用户

如何在Firebase中使用用户名,电子邮件和密码创建新用户?

在 Angular 1 中更新用户

使用Gerrit UI创建新用户

使用 MySQL 参数创建新用户

无法在Firebase上创建新用户

2月1日之后,不再可以在PhoneGap上开发iOS 7应用了吗?(Xcode 5和iOS 7 SDK限制!)

Rails 4-使用devise创建新用户注册时,复选框协议验证失败

新用户使用Swift和Parse登录时,数据未更新到当前用户

使用Xcode 7,Unity 5.2.3f1,iOS 9.1基本SDK构建时出现错误

使用Xcode 8和Swift 3在解析中更新用户位置

使用 isset($_POST['submit']) 或 $_SERVER["REQUEST_METHOD"] == "POST" 错误创建新用户 php 和 sql

如何在JAVA中使用API创建新用户

我可以在Windows7中创建新用户,以扩展当前管理员用户的所有应用程序数据和设置吗?

使用http发布请求在具有Graph API的Azure Active Directory(B2C)中创建新用户

使用ASP.Net Identity 2创建新用户时,会将新行插入到父表中