1

我正在尝试拉生日以获取使用 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);

我知道我在 Facebook 上的生日是 1987 年 1 月 4 日(应该在 $birthday 中作为字符串“01/04/1987”拉出)。但是当我的数据库中的字段被填充时,它的数字是 43。

我试过单独运行代码,将它作为 $birthday 输入“01/04/1987”,它吐出 26 个罚款。

我不确定发生了什么(Facebook 会不会给我一个错误的生日?)提前感谢您的帮助。

4

1 回答 1

0

如果您确实授予了您的应用程序权限,请检查Graph API Explorer 。user_birthday在右上角的下拉列表中选择您的应用程序并用此填充文本框

me?fields=birthday

如果输出中没有birthday字段,您可以点击Get Access Token查看您授予应用程序的权限。

我认为您没有授予user_birthday您的应用程序进行身份验证的权限并且$me['birthday']是空的。这就是为什么从 1970 年以来计算的年龄是 43 年,正如Marc B在他的评论中指出的那样。要检查,只需使用var_dump($me['birthday']).

并且一定要检查这个评论

于 2013-02-08T19:25:15.437 回答