我看到这里有很多问题,但我的问题没有解决办法。我有PHP登录的PHP网站,我需要获得一个电子邮件地址,但Facebook SDK不会返回它。这是JS代码:
f = io.open(today, 'w')
这是PHP,重定向时:
$(function(){
$('.fb_reg_btn').click(function(){
FB.login(function(response){
FB.api('/me?fields=email', function(response) {
window.top.location ="http://redirecturlhere";
});
return false;
});
return false;
});
});
这是与Facebook的标准登录,它工作正常,但它不返回电子邮件地址,但它返回其他值,如名字,姓名,姓氏,身份证。 var_dump的结果是(编辑):
对象(Facebook \ GraphNodes \ GraphUser)#37(1){[“items”:protected] => array(4){[“name”] => string(12)“name edited”[“first_name”] => string(5)“name edited”[“last_name”] => string(6)“name edited”[“id”] => string(17)“numbers”}}
如何获取和电子邮件地址? 我确定用户有电子邮件,我使用相同的代码,但另一个FB应用程序用于FB登录的其他网站,并返回和电子邮件。我试图用“范围”改变“字段”,但是相同。
答案 0 :(得分:1)
您必须在登录过程中的scope参数中添加email
权限。例如:
FB.login(function(response) {
if (response.authResponse) {
//user just authorized your app
FB.api('/me', {fields: 'email'}, function(response) {
window.top.location = 'http://redirecturlhere';
});
}
}, {scope: 'email'});
来源:http://www.devils-heaven.com/facebook-javascript-sdk-login/
另外,请确保电子邮件已在Facebook上获得批准。