Как обновить FBRequest.requestForMe() на facebooksdk v4.0.1?

Итак, я сделал приложение на iphone. Я использую вход через facebook и в настоящее время обновляю свой facebooksdk до последней версии. В каком-то моем коде есть ошибка. Ниже мой код:

let request = FBRequest.requestForMe()
    request.startWithCompletionHandler({ (connection, result, error) -> Void in
        if error == nil {
            if let userData = result as? NSDictionary {

                let facebookId = userData["id"] as! String
                self.user.name = userData["name"]as! String
                //                        self._fbuser.location = userData["location"]["name"] as String
                self.user.gender = userData["gender"] as! String
                self.user.imgUrl = NSURL(string: NSString(format: "https://graph.facebook.com/%@/picture?type=large&return_ssl_resources=1", facebookId) as String)
                self.user.isFacebookUser = true
            }

        } else {

            if let userInfo = error.userInfo {

                if let type: AnyObject = userInfo["error"] {

                    if let msg = type["type"] as? String {
                        if msg == "OAuthException" { // Since the request failed, we can check if it was due to an invalid session
                            println("The facebook session was invalidated")
                            self.onLogout("")
                            return
                        }
                    }
                }
            }

            println("Some other error: \(error)")
        }
    })

Итак, как я могу это исправить? какой код равен или похож на FBRequest.requestme?


person Ega Setya Putra    schedule 12.05.2015    source источник
comment
@AshishKakkad да, я уже авторизовался. Мне просто нужны данные пользователя   -  person Ega Setya Putra    schedule 13.05.2015
comment
@AshishKakkad, как я могу это сделать?   -  person Ega Setya Putra    schedule 13.05.2015
comment
ты видел ответ? Это работает для вас?   -  person Ashish Kakkad    schedule 18.05.2015
comment
да, твой ответ работает на меня   -  person Ega Setya Putra    schedule 18.05.2015


Ответы (1)


Получить информацию о пользователе в facebook sdk 4.x swift

@IBAction func btnFBLoginPressed(sender: AnyObject) {
    var fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
    fbLoginManager .logInWithReadPermissions(["email"], handler: { (result, error) -> Void in
        if (error == nil){
            var fbloginresult : FBSDKLoginManagerLoginResult = result
            if(fbloginresult.grantedPermissions.containsObject("email"))
            {
                self.getFBUserData()
                fbLoginManager.logOut()
            }
        }
    })
}

func getFBUserData(){
    if((FBSDKAccessToken.currentAccessToken()) != nil){
        FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).startWithCompletionHandler({ (connection, result, error) -> Void in
            if (error == nil){
                println(result)
            }
        })
    }
}

Выход :

{
    email = "[email protected]";
    "first_name" = Ashish;
    id = 910855688971343;
    "last_name" = Kakkad;
    name = "Ashish Kakkad";
    picture =     {
        data =         {
            "is_silhouette" = 0;
            url = "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xpf1/v/t1.0-1/p200x200/10394859_900936369963275_5557870055628103117_n.jpg?oh=fefbfca1272966fc78286c36741f9ac6&oe=55C89225&__gda__=1438608579_9133f15e55b594f6ac2306d61fa6b6b3";
        };
    };
}
person Ashish Kakkad    schedule 13.05.2015