如何在 facebooksdk v4.0.1 上更新 FBRequest.requestForMe()?

Posted

技术标签:

【中文标题】如何在 facebooksdk v4.0.1 上更新 FBRequest.requestForMe()?【英文标题】:How to update FBRequest.requestForMe() on facebooksdk v4.0.1? 【发布时间】:2015-05-12 09:56:01 【问题描述】:

所以,我在 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 相同或相似?

【问题讨论】:

@AshishKakkad 是的,我已经完成了登录。我只需要用户数据 @AshishKakkad 我该怎么做? 你看到答案了吗?它对你有用吗? 是的,你的回答对我有用 【参考方案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 = "ashishkakkad8@gmail.com";
    "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";
        ;
    ;

【讨论】:

以上是关于如何在 facebooksdk v4.0.1 上更新 FBRequest.requestForMe()?的主要内容,如果未能解决你的问题,请参考以下文章

HTRI7.3.2数据库VMG10.0 1CD+Schlumberger StimCADE v4.0.1 1CD

高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.0.1 发布

如何在 linux 上更改元数据库的访问端口?

如何在一个页面上禁用 Android 后退按钮并在所有其他页面上更改为退出按钮

Charles(v4 @Windows)的使用

Charles(v4 @Windows)的使用