无法在Parse登录时使用FBSDKGraphRequest

时间:2015-06-29 10:58:15

标签: ios facebook swift parse-platform

我正在使用Parse在我的应用上登录facebook。

这是我的代码:

    //set permissions required
    let permissionsArray = ["user_about_me"]
    //log in
    PFFacebookUtils.logInWithPermissions(permissionsArray, block: { (pUser, pError) -> Void in


        //if user is correctly loggin
        if pUser != nil && pError == nil{


            //request facebook for more informations
            var request = FBSDKGraphRequest(graphPath: "me", parameters: nil)

            request.startWithCompletionHandler({ (connection, result, error) -> Void in
                NSLog("\(error)")

            })

        }
    })

我正确地使用解析登录,但是当我正在询问我的信息时,总是有这样的信息:

com.facebook.sdk:FBSDKGraphRequestErrorParsedJSONResponseKey={
    body =     {
        error =         {
            code = 2500;
            message = "An active access token must be used to query information about the current user.";
            type = OAuthException;
        };
    };
    code = 400;
}}

1 个答案:

答案 0 :(得分:0)

我已经使用Facebook SDK进行登录,我使用返回的令牌进行Parse登录,之后我可以获取用户的信息。

我已用此代码解决了我的问题:

FBSDKLoginManager().logInWithReadPermissions(["user_about_me"], handler: { (result, error) -> Void in

        if let resultLogin : FBSDKLoginManagerLoginResult = result as? FBSDKLoginManagerLoginResult{

            //if no error
            if error == nil
                && resultLogin.grantedPermissions.contains("user_about_me"){
                    var accessToken = FBSDKAccessToken.currentAccessToken().tokenString
                    var expiration = FBSDKAccessToken.currentAccessToken().expirationDate
                    var facebookID = FBSDKAccessToken.currentAccessToken().userID

                    PFFacebookUtils.logInWithFacebookId(facebookID, accessToken: accessToken, expirationDate: expiration, block: { (pUser, pError) -> Void in

                        //if user is correctly loggin
                        if pUser != nil && pError == nil{


                            //request facebook for more informations
                            var request = FBSDKGraphRequest(graphPath: "me", parameters: nil)

                            request.startWithCompletionHandler({ (connection, result, error) -> Void in
                                NSLog("\(error)")

                            })

                        }
                    })
            }
        }
    })