Php 无法获取用户';通过Facebook过生日

Php 无法获取用户';通过Facebook过生日,php,facebook,Php,Facebook,我一直试图通过Facebook Connect获得Facebook用户的生日,但我没有做到这一点。同样的代码以前工作过,在以前制作的其他站点(旧站点)上仍然工作,但似乎不再工作。代码如下: require_once ('./connect/facebook.php'); $facebook = new Facebook("myapi", "mysecret"); $fbuser = $facebook->get_loggedin_user(); if ($fbuser) { $

我一直试图通过Facebook Connect获得Facebook用户的生日,但我没有做到这一点。同样的代码以前工作过,在以前制作的其他站点(旧站点)上仍然工作,但似乎不再工作。代码如下:

require_once ('./connect/facebook.php');

$facebook = new Facebook("myapi", "mysecret");
$fbuser = $facebook->get_loggedin_user();

if ($fbuser)
{
    $_SESSION['custid'] = $fbuser;

    $fb_look_fields = array(
                            'name', 
                            'first_name', 
                            'last_name', 
                            'name', 
                            'timezone', 
                            'name', 
                            'sex', 
                            'birthday',
                            'birthday_date',
                            'current_location', 
                            'proxied_email',
                            'affiliations'
                            );

    try
    {
        $user_data = $facebook->api_client->users_getInfo($fbuser, $fb_look_fields);
    }
    catch (Exception $e)
    {
         echo $e->getMessage();
    }

    # for birth date
    $fb_birthday = $user_data[0]['birthday'];

    if (!$fb_birthday)
    {
        $fql_result_xml = $facebook->api_client->fql_query("SELECT birthday FROM standard_user_info WHERE uid = " . $fbuser);
        $fb_birthday = $fql_result_xml['birthday'];
    }

    echo $fb_birthday;
生日总是空的,即使我已将其设置为所有人可见

  • 我正在使用新的Facebook PHP客户端
  • 我甚至试着从标准表中获取信息,但没有任何运气

Facebook是否再次改变了他们的API/策略?或者我在代码中遗漏了什么/做得不正确?

他们(再次)改变了事情。当您为Connect构建登录按钮时,您可以请求对生日的权限,如:

文档中说,“一旦用户授权您的站点,您就可以从用户的配置文件中获取这些字段…”


Facebook目前将生日设置为扩展权限。你允许延长生日许可吗?在用户批准生日扩展权限之前,您无法检索他的生日。

我通过脱机
访问令牌成功地查询了
标准用户信息表。
但我找不到日期格式的文档。我得到的日期是“1999年3月4日”

我想他们不再允许这样做了,你问过facebook开发者吗section@c0mrade当前位置谢谢你的评论,不,我还没有问过。是的,我允许了,只是在那之后我才去拿了一个,实际上我不知道他们又改变了主意,把生日放在了延长许可的范围内。