簡體   English   中英

為什么我在訪問用戶的Facebook信息時會收到此錯誤?

[英]Why am I getting this error when accessing Facebook information of user?

為什么它給我錯誤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我正在嘗試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.")
        }
    })
}

我不認為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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM