使用 facebook api 获取未定义的用户电子邮件
Getting user email undefined using facebook api
我正在尝试获取用户 ID、姓名、电子邮件。获取 ID 和姓名但不是电子邮件。
我有这个代码:
<html>
<head></head>
body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'xxxxxxxxxxxx',
status : true,
cookie : true,
xfbml : true
});
FB.Event.subscribe('auth.authResponseChange', function(response) {
if (response.status === 'connected') {
testAPI();
} else if (response.status === 'not_authorized') {
FB.login();
} else {
FB.login();
}
});
};
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
function testAPI() {
FB.api('/me', function(response) {
console.log(response.name + '---'+response.email);
});
}
</script>
<fb:login-button show-faces="true" width="200" max-rows="1" scope="public_profile,email"></fb:login-button>
</body>
</html>
输出为:
FirstName LastName---undefined
为什么电子邮件未定义?我也想获得所有可能获得的信息。怎么样?
我试过你用我的测试应用程序编写代码,但我确实遇到了同样的问题。为了解决这个问题,我试过了,我也能收到电子邮件和全名。
替换为 -
FB.api('/me?fields=name,email', function(response) {
console.log(response.name + '---'+response.email);
});
对于完整的登录流程,我使用了以下代码行。刚刚在之前的评论中添加了先前的步骤(FB.login -> FB.api)。
function loginTest()
{
FB.login(function(response)
{
// handle the response
var i = 0;
FB.api('/me?fields=name,email',
function(response)
{
console.log(response.name + '---'+response.email);
}
);
},
{scope: 'email, public_profile'}
);
}
我正在尝试获取用户 ID、姓名、电子邮件。获取 ID 和姓名但不是电子邮件。 我有这个代码:
<html>
<head></head>
body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'xxxxxxxxxxxx',
status : true,
cookie : true,
xfbml : true
});
FB.Event.subscribe('auth.authResponseChange', function(response) {
if (response.status === 'connected') {
testAPI();
} else if (response.status === 'not_authorized') {
FB.login();
} else {
FB.login();
}
});
};
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
function testAPI() {
FB.api('/me', function(response) {
console.log(response.name + '---'+response.email);
});
}
</script>
<fb:login-button show-faces="true" width="200" max-rows="1" scope="public_profile,email"></fb:login-button>
</body>
</html>
输出为:
FirstName LastName---undefined
为什么电子邮件未定义?我也想获得所有可能获得的信息。怎么样?
我试过你用我的测试应用程序编写代码,但我确实遇到了同样的问题。为了解决这个问题,我试过了,我也能收到电子邮件和全名。
替换为 -
FB.api('/me?fields=name,email', function(response) {
console.log(response.name + '---'+response.email);
});
对于完整的登录流程,我使用了以下代码行。刚刚在之前的评论中添加了先前的步骤(FB.login -> FB.api)。
function loginTest()
{
FB.login(function(response)
{
// handle the response
var i = 0;
FB.api('/me?fields=name,email',
function(response)
{
console.log(response.name + '---'+response.email);
}
);
},
{scope: 'email, public_profile'}
);
}