我正试图拉开生日,以获得用Facebook登录我页面的用户的年龄。我一直试图用我的个人资料登录,但这给了我错误的年龄。下面是我在process_facebook.php中的代码(我有一个带有一个名为“age”的字段的数据库,它带有一个int):
function getAge($birthday) {
$dt = strtotime($birthday);
// convert the birthday to a standard format (UNIX epoch)
$a = gmdate('Y') - gmdate('Y',$dt);
// find the difference of years
$a = (int)$a;
return $a; // return the age.
}
在典型的process_facebook.php框架中,我有这个:
$birthday = $me['birthday'];
$age = getAge($birthday);
我知道我的生日是1987年1月4日在Facebook上(应该在$生日时作为字符串“01/04/1987”)。但是当填充我的数据库中的字段时,它的编号为43.
我已经尝试单独运行代码“01/04/1987”作为$ birthday,并且它吐出26罚款。
我不确定发生了什么(Facebook会不会给我一个错误的生日?)感谢您的帮助。
答案 0 :(得分:0)
如果您确实已授予您的申请user_birthday
权限,请检入Graph API Explorer。在右上角的下拉列表中选择您的应用,然后使用此
me?fields=birthday
如果输出中没有birthday
字段,您可以点击获取访问令牌以查看您授予应用的权限。
我认为您尚未授予{aut} user_birthday
您的应用授权$me['birthday']
权限,var_dump($me['birthday'])
为空。这就是为什么计算的年龄是自1970年以来43年过去的原因,正如Marc B在他的评论中指出的那样。要检查是否只使用{{1}}。
请务必查看this comment。