无法从Facebook API获取电子邮件

时间:2020-07-16 13:56:09

标签: javascript facebook-graph-api

首先是一些检查点:

  • 我的电子邮件是公开的并且可读(并且尝试了多个不同的帐户)
  • 曾经尝试过“开发模式”和“实时模式”。没有不同。 Facebook登录设置已完成且正确。.
  • 尝试过localhost和我们的开发服务器。
  • 登录时显示“请求电子邮件权限”,/ me / permissions表示“电子邮件”访问权限为“已授予”。

不过...从FB.login和FB.api(/ me ...)获取数据时,我都会在响应中收到电子邮件。

getUserData返回“ id”和“ name”。

代码:

<div 
   class="fb-login-button" 
   data-size="large" 
   data-button-type="login_with" 
   data-layout="default" 
   data-auto-logout-link="true" 
   data-use-continue-as="true" 
   data-width=""
   data-scope="public_profile, email">
 </div>
 <FoodyButton :onClick="e=>authForEmail()">ask for email</FoodyButton>
 <FoodyButton :onClick="e=>getUserData()">get profile</FoodyButton>


getUserData() {
    let url = '/me?fields:id,name,email';
    FB.api(url,  e => {
        console.log('userdata' ,e);
    }, {scope:'email'});
   },

 authForEmail() {
    FB.login(
       function(response) {
         console.log('email:',response);
       },
       {
         scope: 'email',
         auth_type: 'rerequest'
       }
    ); 
  },

也尝试过此操作(没有其他结果...)

logInWithFacebook() {
    let url = '/me?fields:id,name,email';
      FB.login((response) => {
      console.log("Response is : ", response)
        FB.api(url, (fbLogin) => {
        console.log(`Good to see you, ${fbLogin.email}.`);
        this.$store
          .dispatch("registerOrCreateFbLogin", fbLogin)
          .then((response) => {
            this.$router.go(-1);  
          });
          // }
      }, {scope:'email'})
    }, {scope: 'email', return_scopes:true}, {auth_type: '  '});
},

0 个答案:

没有答案