【问题标题】:Why am I getting this error when accessing Facebook information of user?为什么访问用户的 Facebook 信息时出现此错误?
【发布时间】:2015-09-15 01:59:49
【问题描述】:

为什么它给我错误2015-09-14 20:56:31.773 Musec[7207:3288153] FBSDKLog: starting with Graph API v2.4, GET requests for /me should contain an explicit "fields" parameter 我正在尝试访问朋友、电子邮件等用户信息。我该如何解决这个错误?以下是登录名以及访问用户信息的权限。

@IBAction func loginWithFB(sender: AnyObject) {

    var permissions = [ "public_profile", "email", "user_friends"]

    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.performSegueWithIdentifier("success", sender: self)
                //let params = ["fields": "name, email, friends"]
                let graphRequest: FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "name, email, friends"])
                graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in

                if ((error) != nil)
                {
                    // Process error
                    println("Error: \(error)")
                }
                else
                {
                    //get username
                    let userName : NSString = result.valueForKey("name") as! NSString
                    println(userName)
                    //get Facebook ID
                    let email: NSString = result.valueForKey("email") as! NSString
                    println(email)
                    //get facebook friends who use app
                    let friendlist: NSString = result.valueForKey("friends") as! NSString
                    println(friendlist)

                }
                })

            } else {
                println("User logged in through Facebook!")
                self.performSegueWithIdentifier("success", sender: self)
            }
        } else {
            println("Uh oh. The user cancelled the Facebook login.")
        }
    })
}

【问题讨论】:

    标签: ios swift facebook-graph-api parse-platform


    【解决方案1】:

    我不认为FBSDKLog: starting with Graph API v2.4, GET requests for /me should contain an explicit "fields" parameter 实际上是一个错误。它只是一个日志。如果您运行代码并设置断点,您会发现错误实际上是nil,您将能够成功编译代码并看到代码的else 部分正在执行。

    现在,您正在尝试访问 Facebook 用户的 name,但没有在 fields 中传递 name。这就是为什么你会得到namenull。将name 作为参数列表传递。

    let params = ["fields": "name, email, friends"] <----- This line
    

    或者这里:

    let graphRequest: FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "name, email, friends"])
    

    现在,您将能够获取 Facebook 用户的name, email and friends

    【讨论】:

    • 我仍然收到FBSDKLog: starting with Graph API v2.4, GET requests for /me should contain an explicit "fields" parameter
    • 忽略那部分。它只是 facebook SDK 设置的日志。这不是错误或警告。你很高兴
    • 姓名、邮箱、好友怎么没有打印出来?
    • 是的,我添加了名称。
    • 我在断点时得到这个。 dropbox.com/s/rzusujy8zr5kvdy/…。条件应该在哪里?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 2017-08-28
    • 2017-02-20
    相关资源
    最近更新 更多