如何使用 Facebook Graph API 获取 city/state/country 用户

How to get city/state/country of user using Facebook Graph API

我正在尝试使用 FBSDKGraphRequest 填充文本字段。 First/last 姓名和电子邮件不是问题,但说到位置,我似乎只能得到 'Austin, Texas'。我似乎无法将各个值取出并放入 textFields 中。

在下面的代码中,城市文本字段使用 'Austin, Texas' 填充。我怎么才能得到城市 'Austin' 然后在状态文本字段中得到 'Texas'?

        FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "email, first_name, last_name, location"]).start(completionHandler: { (connection, result, error) -> Void in
            if let error = error {
                self.alertTheUser(title: "Error", message: error.localizedDescription)
                print(error)
            }else{
                let fbDetails = result as! NSDictionary
                let location : NSDictionary! = fbDetails.value(forKey: "location") as! NSDictionary
                print(fbDetails)
                self.registerEmailField.text = fbDetails.value(forKey: "email") as? String
                self.registerFirstNameField.text = fbDetails.value(forKey: "first_name") as? String
                self.registerLastNameField.text = fbDetails.value(forKey: "last_name") as? String
                self.registerCityField.text = location.value(forKey: "name") as? String
            }
        })

忘了把这个清除掉。

FBSDKGraphRequest 中的位置应该如下所示。

FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "email, first_name, last_name, location{location}"]).start(completionHandler: { (connection, result, error) -> Void in

然后您可以分别访问各个位置值。

let locationContents: NSDictionary! = location.value(forKey: "location") as! NSDictionary
self.registerCityField.text = locationContents.value(forKey: "city") as? String
self.registerStateField.text = locationContents.value(forKey: "state") as? String
self.registerCountryField.text = locationContents.value(forKey: "country") as? String