Javascript Facebook API / me电子邮件无效

时间:2017-05-30 13:18:22

标签: javascript facebook api

我目前正在测试通过Facebook创建登录信息。它很容易使用,但我只是没有通过api获得邮件地址。

这是我的代码,我希望你们知道可能出现的问题。

/*
    Facebook SDK
*/
(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_US/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

window.fbAsyncInit = function() {
    FB.init({
        appId            : '138095353404106',
        autoLogAppEvents : true,
        xfbml            : true,
        version          : 'v2.9'
    });
    FB.AppEvents.logPageView();
};

function checkLoginState()
{
    FB.getLoginStatus(function(response)
    {
        statusChangeCallback(response);
    });
};

function statusChangeCallback(response)
{
    if (response.status === 'connected')
    {
        testAPI();
    };
};

function testAPI()
{
    FB.api('/me', {fields: "id,first_name,last_name,email"}, function(response)
    {
        console.log(response);
    });

    FB.api('/me/picture', {type: "large"}, function(response)
    {
        console.log(response);
    });
};

ID,名字和姓氏就在那里。我只是想念电子邮件。控制台中没有错误。

PS

还包括HTML标记:

<div class="fb-login-button" onlogin="checkLoginState();" data-max-rows="1" data-size="medium" data-button-type="login_with" data-show-faces="false" data-auto-logout-link="false" data-use-continue-as="true"></div>

1 个答案:

答案 0 :(得分:0)

我需要添加scope参数以询问用户是否还有电子邮件权限:

<div scope="email" class="fb-login-button" onlogin="checkLoginState();" data-max-rows="1" data-size="medium" data-button-type="login_with" data-show-faces="false" data-auto-logout-link="false" data-use-continue-as="true"></div>