0

Facebookのログインボタンで接続している人のfacebookの電子メールアドレスを取得できません。私は2.8バージョンのJDK Javaスクリプトを使用しますfacebookからのユーザーメールをv2.8のSDKのJavaスクリプトと接続

<fb:login-button scope="public_profile,email" onlogin="checkLoginState();" auto_logout_link="true"></fb:login-button> 

<script> 
    window.fbAsyncInit = function() { 
     FB.init({ 
      appId  : '<appId>', 
      xfbml  : true, 
      version : 'v2.8' 
     }); 
     FB.AppEvents.logPageView(); 
    }; 

    (function(d, s, id){ 
     var js, fjs = d.getElementsByTagName(s)[0]; 
     if (d.getElementById(id)) {return;} 
     js = d.createElement(s); js.id = id; 
     js.src = "//connect.facebook.net/en_FR/sdk.js"; 
     fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 

    function checkLoginState() { 
     FB.getLoginStatus(function(response) { 
      //console.log('Check login state'); 
      //console.log(response); 
      statusChangeCallback(response); 
     }); 
    } 

    function statusChangeCallback(response) { 

     if (response.status === 'connected') { 
      console.log('Connected'); 
      testAPI(); 
     } else if (response.status === 'not_authorized') { 
      console.log('Please log into this app'); 
     } else { 
      console.log('Please log into Facebook.'); 
     } 
    } 

    function testAPI() { 
     FB.login(function(response) { 
      if (response.authResponse) { 
       var access_token = response.authResponse.accessToken; 
       FB.api(
        '/me', 
        {fields: 'id,email,cover,name,first_name,last_name,age_range,link,gender,locale,picture,timezone,updated_time,verified'}, 
        function (response) { 
         console.log('response'); 
         console.log(response); 
        } 
       ); 
      } else { 
       console.log('User cancelled login or did not fully authorize.'); 
      } 
     },{scope:'email'});   
    } 

    function testLogout() { 
     FB.logout(function(response) { 
      console.log(response); 
     }); 
    } 
</script> 

私は電子メール以外のすべての情報を持っています。私を助けてくれますか?

+0

ユーザが実際に電子メールの許可を与えましたか?メールアドレスは確認されていますか?そうでない場合は返されません。 – CBroe

+0

はい、私のオブジェクトの応答(検証:真)で電子メールが確認され、接続中にすべてのアクセス許可を受け入れました。 –

+0

そのフィールドは、プロファイル自体が検証されているかどうか、電子メールとは何の関係もないことを意味します。 – CBroe

答えて

1

変更:

FB.api(
       '/me', 
       {fields: 'id,email,cover,name,first_name,last_name,age_range,link,gender,locale,picture,timezone,updated_time,verified'}, 
       function (response) { 
        console.log('response'); 
        console.log(response); 
       } 
      ); 

へ:

FB.api(
       '/me?fields=id,email,cover,name,first_name,last_name,age_range,link,gender,locale,picture,timezone,updated_time,verified', 
       function (response) { 
        console.log('response'); 
        console.log(response); 
       } 
      ); 
関連する問題