无法使用 facebook JavaScript SDK 获取 facebook 用户的电子邮件



我正在使用javascript sdk在我的网站上使用facebook身份验证。我可以获取我的电子邮件和姓名,但我无法收到他们的电子邮件,如果他们正在登录,只能收到他们的名字(这是我的 fb 开发人员应用程序(。

它要求登录,以防没有人登录Facebook但没有任何反应。如果我在应该登录到我的应用程序的位置放置一个警报,它确实返回名称,而不是电子邮件。但如果是我,我两者都得到。这是为什么呢?

这是我的代码:

<%-- Facebook conection script--%>
<script src="//connect.facebook.net/en_US/all.js"></script>
<script> FB.init({
appId: '334351783684824',
cookie: true,
xfbml: true,
version: 'v2.8'

});
function fbAuthUser() {
FB.login(checkLoginStatus);;
}
function checkLoginStatus(response) {
if (response.status === 'connected') {
FB.api('/me', 'GET', { fields: 'email,name' }, function (response) {
alert(response.email + "; " + response.name);
Ajax(response.email, response.name);
});
}
}

function Ajax(expressao1, expressao2) {
var request = { email: expressao1, nome: expressao2 }
$.ajax({
url: 'login.aspx/LoginExterno',
method: 'post',
contentType: 'application/json',
data: JSON.stringify(request),
dataType: 'json',
success: function (resp) {
window.location.href = resp.d;
},
error: function () { }
})
}
</script>

它应该登录并在获取数据后使用该 ajax 函数访问 c# 函数背后的代码,该代码将用户重定向到索引(如果他/她已经有一个帐户(或注册表(如果他/她没有帐户(。它甚至没有进入 Ajax 函数,因为电子邮件参数可能是未定义的。但是当两者都存在时,它确实存在。

那么,我怎样才能收到电子邮件呢?

好的,我终于明白了。在FB上。登录功能,我需要添加范围并且用户必须给予权限。在我的代码上,它会像:

FB.login(checkLoginStatus,{scope: 'email'});;

最新更新