如何使用最新的Facebook sdk从iOS中的Facebook API获取用户的生日?

时间:2015-09-24 13:06:28

标签: ios objective-c facebook-graph-api facebook-ios-sdk

如何使用最新的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)

但是不能获取生日。

5 个答案:

答案 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调用不会检索此属性。