Ale*_*tev 5 facebook facebook-graph-api ios swift facebook-sdk-4.x
下午好!我需要从Facebook获取用户数据.我成功获取了用户名,ID,照片等数据.但是当你尝试查询婚姻状况时,我得到一个空字典的回复.我尝试提出不同的请求,但总是得到这样的结果.我也看过这些主题官方Facebook网站,这个,这个怎么样才能解决这个问题?
我的示例代码
static func getUserRelationship() {
if (FBSDKAccessToken.currentAccessToken() != nil) {
guard let currentUser = getCurrentFacebookUser() else { return }
FBSDKGraphRequest(graphPath: "/\(currentUser.id)/family", parameters: nil, HTTPMethod: "GET").startWithCompletionHandler({ (requestConnection, result, error) in
if error == nil {
let dictionary = result as! [String : AnyObject]
let array = dictionary["data"]
print("facebook", result, dictionary, array?.count)
} else {
print(error.localizedDescription)
}
})
} else {
getDataLogin({
getUserBirthday()
}, fails: { (error) in
})
}
}
Run Code Online (Sandbox Code Playgroud)
我在控制台中看到了结果
facebook {
data = (
);
}
Run Code Online (Sandbox Code Playgroud)
Cha*_*lva 13
您的GraphRequest不正确.如果你想获取用户数据,graphPathe应该是"我",你应该请求参数以获得关系状态和其他信息.而且你需要在LogInWithReadPermissons中请求公开的个人资料,所以在阅读许可: -
let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
fbLoginManager.loginBehavior = FBSDKLoginBehavior.Web
fbLoginManager.logInWithReadPermissions(["public_profile","email"], fromViewController: self) { (result, error) -> Void in
if error != nil {
print(error.localizedDescription)
self.dismissViewControllerAnimated(true, completion: nil)
} else if result.isCancelled {
print("Cancelled")
self.dismissViewControllerAnimated(true, completion: nil)
} else {
}
}
Run Code Online (Sandbox Code Playgroud)
并在检索信息时: -
FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, relationship_status"]).startWithCompletionHandler({ (connection, result, error) -> Void in
if (error == nil){
let fbDetails = result as! NSDictionary
print(fbDetails)
}
})
Run Code Online (Sandbox Code Playgroud)
顺便说一句,如果你想要婚姻状况你应该使用graphPath作为"我"而不是"/ {user-id}/family".你可以用它来获得这个人的家庭关系.
| 归档时间: |
|
| 查看次数: |
8341 次 |
| 最近记录: |