如何使用最新的Facebook sdk从iOS中的Facebook API获取用户的生日?
我试图抓住它
{@"fields": @"id, name, link, first_name, last_name, picture.type(large), email, birthday"}
并已获得许可
[login logInWithReadPermissions:@[@"public_profile", @"email", @"user_friends",@"user_birthday"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
但是不能获取生日。
答案 0 :(得分:3)
你无法获取用户生日只有你可以获得的用户而且你必须在Facebook开发者之后发送应用程序进行批准,而不是你的应用程序批准,而不是你可以设置额外的权限,但我不认为用户生日你可以得到。
答案 1 :(得分:2)
使用此代码。这可以帮助您
{
"Details": {
"Records": {
"name": {
"@id": "123",
"#text": "xyz"
},
"age": "25",
"gender": {
"@type": "male"
}
}
}
}
答案 2 :(得分:1)
Swift 3x:
希望这会对任何人有所帮助
//MARK: - sign in with facebook
let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
fbLoginManager.logIn(withReadPermissions: ["email","user_photos","user_birthday"], from: self) { (result, error) -> Void in
if (error == nil) {
let fbloginresult : FBSDKLoginManagerLoginResult = result!
print("fbloginresult######:\(fbloginresult)")
if (result?.isCancelled)! {
print(result ?? FBSDKLoginManagerLoginResult())
} else if(fbloginresult.grantedPermissions.contains("email")) {
//show loader
//print(user())
//FETCH USER DATA
if((FBSDKAccessToken.current()) != nil) {
FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email, birthday"]).start( completionHandler: { (connection, result, error) -> Void in
if (error == nil) {
//everything works print the user data
print(result ?? AnyObject.self)
if let jsondata = result as? [String: Any], let strEmail = jsondata["email"] as? String, let fb_id = jsondata["id"] as? String, let picture = jsondata["picture"] as? [String: Any], let data = picture["data"] as? [String: Any],let url = data["url"] as? String {
// print(url)
print(strEmail)
print(fb_id)
}
//Loader hide
}
})
}
}
}
}
答案 3 :(得分:0)
试用您已在其中注册应用的帐户。不要尝试使用其他Facebook帐户。
它会给你一个Birhtday。
同时检查帐户的隐私设置。
生日可能不公开。这也可能是一个问题。
由于
答案 4 :(得分:0)
考虑到要获得生日(以及其他一些属性,如用户生物),Facebook必须审核该应用。否则,虽然权限已正确地提供给用户,但Graph API调用不会检索此属性。