我从一些用户的fb api调用中获取电子邮件字段时遇到问题。我可以确认我用经过验证的真实用户的邮件进行了测试。对于其中一些我得到电子邮件字段,但对于其他人我得到null。 我是获得访问令牌的标准js,我使用的是弹簧工件:
<dependency>
<groupId>org.springframework.social</groupId>
<artifactId>spring-social-facebook</artifactId>
<version>2.0.3.RELEASE</version>
</dependency>
这里是FE代码:
FB.login(function(response) {
if(response.authResponse.accessToken) {
// submit token to server
facebookSuccess(response.authResponse.accessToken);
}
}, {scope: 'public_profile,email'});
window.fbAsyncInit = function() {
FB.init({
appId : '1567056303561905',
xfbml : true,
version : 'v2.5'
});
};
(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'));
这是服务器代码:
Facebook fb = new FacebookTemplate(accessToken);
org.springframework.social.facebook.api.User fbUser = fb.userOperations().getUserProfile();
fbUser.getEmail(); //返回null