首页 > 解决方案 > Facebook 登录响应没有电子邮件和公共个人资料数据

问题描述

我有简单的登录按钮:

<div class="fb-login-button" data-width="234" data-max-rows="1" data-size="large" data-button-type="login_with" data-show-faces="false" data-auto-logout-link="false" data-use-continue-as="false" data-scope="public_profile,email" data-onlogin="system.onFacebookAuth()"></div>

和简单的回调:

system.onFacebookAuth = function() {
    FB.getLoginStatus(function(response) {
        console.log(response);
    });
}

我正在尝试登录并且:

{…}
authResponse: {…}
accessToken: "..."
expiresIn: 3917
reauthorize_required_in: 7775999
signedRequest: "..."
userID: "90204760053877350"
<prototype>: Object { … }
status: "connected"
<prototype>: Object { … }

就这样。没有电子邮件,甚至没有公开的个人资料数据,例如用户名。你能解释一下有什么问题吗?

标签: facebookfacebook-javascript-sdkfacebook-login

解决方案


您没有在代码中使用 API。FB.getLoginStatus只需检查用户是否授权您的应用程序。这将是一个 API 调用:

FB.api('/me', {fields: 'email,name'}, (response) => {
  console.log(response);
});

推荐阅读