[英]How to fetch user's birthday from Facebook API in iOS using latest Facebook 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)
但是無法獲取生日。
您不能僅獲取您可以獲取的用戶生日,並且必須在應用程序批准后將應用程序發送給Facebook開發者以供批准,而不是您的應用程序可以設置額外的權限,但我認為您無法獲得用戶的生日。
使用此代碼。這可能對您有幫助
(IBAction)btnfb:(id)sender
{
if (!FBSession.activeSession.isOpen)
{
NSArray *_fbPermissions = @[@"email",@"publish_actions",@"public_profile",@"user_hometown",@"user_birthday",@"user_about_me",@"user_friends",@"user_photos",];
[FBSession openActiveSessionWithReadPermissions:_fbPermissions allowLoginUI:YES completionHandler:^(FBSession *session,FBSessionState state, NSError *error)
{
if (error)
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" message:error.localizedDescription delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
}
else if(session.isOpen)
{
[self btn_fb:sender];
}
}];
return;
}
[FBRequestConnection startWithGraphPath:@"me" parameters:[NSDictionary
dictionaryWithObject:@"cover,picture.type(large),id,name,first_name,last_name,gender,birthday,email,location,hometown,bio,photos"
forKey:@"fields"] HTTPMethod:@"GET"
completionHandler:^(FBRequestConnection *connection, id result, NSError
*error)
{
{
if (!error)
{
if ([result isKindOfClass:[NSDictionary class]])
{
NSLog(@"%@",result);
}
}
}
}];
}
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
}
})
}
}
}
}
嘗試使用您已注冊應用程序的帳戶。 不要嘗試使用其他Facebook帳戶。
它會給你一個生日。
還要檢查帳戶的隱私設置。
生日可能不公開。 這也可能是一個問題。
謝謝
考慮到要獲得生日(以及其他一些屬性,例如用戶簡歷),應用必須由Facebook審核。 否則,盡管權限已正確授予用戶,但Graph API調用將不會檢索此屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.