我目前正在测试通过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>
答案 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>