在网络应用程序中从facebook登录接收电子邮件id

Receive email id from facebook login in web application

本文关键字:电子邮件 id 登录 facebook 网络 应用程序      更新时间:2023-09-26

我的web应用程序使用fb登录,但作为回报,我只收到fb Id和名称。我确实想要返回数据中的电子邮件id。

(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: '935846336454759',
        cookie: true,  // enable cookies to allow the server to access 
        // the session
        status: true,
        xfbml: true,  // parse social plugins on this page
        version: 'v2.3', // use version 2.3
        oauth: true // enable OAuth 2.0
    });
    FB.getLoginStatus(function (response) {
        statusChangeCallback(response);
    });
};
function FBLogin() {
    FB.login(function (response) {
        if (response.authResponse) {
            getUserInfo(); //Get User Information.
        } else {
            alert('Authorization failed.');
        }
    }, {
        scope: 'public_profile,email',
        return_scopes: true
    });
}
function getUserInfo() {
    FB.api('/me', function (resp) {
        console.log(resp);       
    });
}
<--on button click FBLogin() method calls  -->
<button value="facebook" class="facebook" onclick="FBLogin()"> </button>

作为回应,我得到了如下的东西:

Object{name:"Harmeet Kamboj",id:"8279848306534449"}

您必须指定要返回的每个字段:

function getUserInfo() {
    FB.api('/me?fields=id,name,email', function (resp) {
        console.log(resp);       
    });
}

参见

  • https://developers.facebook.com/docs/apps/upgrading#v23tov24