Facebook许可“生日”给了我错误的年龄

时间:2013-02-08 19:12:57

标签: php mysql facebook

我正试图拉开生日,以获得用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会不会给我一个错误的生日?)感谢您的帮助。

1 个答案:

答案 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