Facebook graph object/entity parsing SDK 4 in Swift

前端 未结 2 1527
再見小時候
再見小時候 2021-01-27 11:18

In Swift how do you parse the result of a fbk graph request? I have a nested dictionary and casting to [String: String] does not work. I have casted to NSDictionary which works

相关标签:
2条回答
  • 2021-01-27 11:26

    Create a dictionary :

    class ViewController: UIViewController {
        var dict : NSDictionary!
    }
    

    Fetching the data :

    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){
                self.dict = result as NSDictionary               
                println(self.dict)
                NSLog(self.dict.objectForKey("picture")?.objectForKey("data")?.objectForKey("url") as String)
            }
        })
    }
    

    Output should be :

    {
        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-xfa1/v/t1.0-1/s200x200/22501_915701971820048_9046303472199214595_n.jpg?oh=f3b3564f1450c13332b3067a135cad5d&oe=55C71792&__gda__=1443571904_c4667dcb08d85682edfd77a90ee9c3ab";
            };
        };
    }
    2015-05-25 22:12:34.015 SwiftFB[2713:7830] https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xfa1/v/t1.0-1/s200x200/22501_915701971820048_9046303472199214595_n.jpg?oh=f3b3564f1450c13332b3067a135cad5d&oe=55C71792&__gda__=1443571904_c4667dcb08d85682edfd77a90ee9c3ab
    
    0 讨论(0)
  • 2021-01-27 11:28

    This mess worked for me. I am using SWIFT 3.01 and FB Swift SDK

    if let responseDictionary = response.dictionaryValue {
    
                        print(responseDictionary["name"] ?? "")
    
                        let a = responseDictionary["picture"] as! NSDictionary
                        let b = a["data"] as! NSDictionary
                        let c = b["url"]
                        print(c ?? "")
    
    0 讨论(0)
提交回复
热议问题