2017-01-05 12 views
0

私はsignup with Facebookを使用しています。他のFacebookログインが正常に動作します。一部のアカウントは正常に機能していますが、一部のアカウントではemailが返されません。理由を知っている人は、私を助けてください!このようなiOS FacebookのサインアップメールIDがアカウントに返されないのはなぜですか?

- (void)facebookOpenSession{ 

NSArray *permissions = [[NSArray alloc] initWithObjects:@"user_birthday",@"basic_info",@"user_location",@"user_likes",@"email",@"public_profile",@"user_hometown",@"user_about_me",nil]; 
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; 
[login 
logInWithReadPermissions: permissions 
fromViewController:self.view.window.rootViewController 
handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) 
{ 
    if (error) { 
    } else if (result.isCancelled) { 
    } else { 
     if ([result.grantedPermissions containsObject:@"email"]) 
     { 
      [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" 
               parameters:@{@"fields": @"picture, email,name,first_name,last_name"}] 
       startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { 
        if (!error) { 
         if ([result objectForKey:@"email"]!=NULL) 
         { 
         [self newFbLoginFunction:result]; 
         } 
        } 
       }]; 
     } 
    } 
}];} 

応答:

{ 
"first_name" = AAAA; 
id = 1XXXXXXXXX2258; 
"last_name" = BBBBB; 
name = "AAAA BBBBB"; 
picture =  { 
    data =   { 
     "is_silhouette" = 0; 
     url = "https://fb-s-c-a.akamaihd.net/h-ak-xpa1/v/t1.0-1/p50x50/XXXXXXXXXXX3212_3395344935279367518_n.jpg?oh=7345e4de6XXXXXXXXXXXX8&oe=58E16A60&__gda__=14951668XXXXXXXXXX2bc0aec58eab3f25e47"; 
    }; 
};} 

答えて

0

はない、すべてのユーザーがログインするために電子メールを使用し、あなたはまた、電話番号を使用することができます。また、電子メールはFacebookによって承認されている必要があります。そうしないと、APIには表示されません。

他の言葉で言えば、電子メールを返信することは決して保証できません。 APIを使用してメールを受け取れない場合は、ユーザーにメール入力フィールドを提示してください。

+0

私は電子メールのみで登録しています。私はどのアプリでもログインしなかった。 – sathya

+0

「一部のアカウントはメールを返さない」 - それはあなたのユーザーではなく、他のユーザーに関するものです。 – luschn

関連する問題