Php 获取用户';通过facebookapi庆祝生日
我在使用Facebook API时遇到了一些问题,我正在通过Javascript请求对用户的某些信息的许可:Php 获取用户';通过facebookapi庆祝生日,php,javascript,facebook,Php,Javascript,Facebook,我在使用Facebook API时遇到了一些问题,我正在通过Javascript请求对用户的某些信息的许可: FB.login(function (response) { if (response.authResponse) { // authorized } else { // canceled } }, {scope: 'email,user_birthday,user_location'}); 现在我想通过PHP获取用户的信息(当用
FB.login(function (response) {
if (response.authResponse) {
// authorized
} else {
// canceled
}
}, {scope: 'email,user_birthday,user_location'});
现在我想通过PHP获取用户的信息(当用户获得授权时):
所有这些都工作得很好,只是API没有把用户的生日还给用户。即使我将生日隐私设置设置为public,它也不会显示
因此:
有人知道如何解决这个问题吗?您是在客户端登录的,但php是在服务器端执行的,因此您只接收用户对象的基本信息 如果您在服务器端登录并拥有,那么您只需通过以下方式即可获得生日:
echo $facebookUser['birthday'];
如果您想在服务器端获取FB信息,为什么不使用服务器端身份验证如果您同意客户端身份验证,上述功能应该可以使用。很可能您没有从FB获得请求用户生日的批准 除非FB审查你的FB应用程序,否则你无法获得用户的生日 仅可请求以下权限而无需审阅:
public\u profile
、user\u friends
和email
(见:)
没有审查,你只能要求
年龄范围
,但不能要求用户的生日
,虽然这不能回答他的问题。嗯,有点像。由于他没有使用PHPSDK,而是自己发出一个简单的HTTP请求,因此不会传递任何访问令牌。因此,他要么自己将令牌从客户端传递到服务器端,要么从cookie中读取令牌,然后自己将其附加到请求URL中,要么使用SDK,SDK本身就可以很好地处理所有这些问题。我已经尝试过了,但该密钥不存在。看来我没有权限看。虽然我正在请求它…但我正在将信息保存到数据库中,不想再进行额外的AJAX调用。这就是为什么我在服务器端使用它。我尝试过你的想法,但是响应。执行回调时,user\u birth
未定义。我有类似的问题。有趣的是,在我第一次尝试时,我确实得到了生日,但在随后的尝试中没有得到相同的用户。我查看了隐私设置,看到了那个应用程序。有幸看到我的生日,所以这不是问题。
echo $facebookUser['birthday']; // Gives an error, since this key does not exists
echo $facebookUser['birthday'];
FB.login(function (response) {
var user_birthday = response.user_birthday;
console.log(user_birthday);
if (response.authResponse) {
} else {
// canceled
}
}, {scope: 'email,user_birthday,user_location'});