2010-05-05 22 views
3

我一直试图通过Facebook Connect获得Facebook用户的生日,但我还没有设法做到这一点。相同的代码以前工作,并仍然在其他网站(旧的)上工作,但似乎没有再次工作。下面是代码:无法通过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客户
  • 我甚至尝试从标准表,但没有任何的运气

实已再次改变了自己的API /政策得到信息?或者我在代码中遗漏了什么/没有正确执行?

+0

我认为他们不允许这样做,你在Facebook开发者部分 – ant 2010-05-05 08:22:04

+0

@ c0mrade询问:感谢您的评论,不,我还没有问过那里。 – Sarfraz 2010-05-05 08:35:52

回答

2

他们改变了事情(再次)。当你建立连接登录按钮,您可以要求允许生日,如:

文档说,“一旦用户授权您的网站,你可以获取从用户的配置文件这些领域.. ”

http://developers.facebook.com/docs/guides/web#login

+0

+1:这个链接是有帮助的,只是看看。 – Sarfraz 2010-05-05 14:45:25

2

Facebook目前取得的生日作为扩展权限。你是否允许生日延长许可?在用户批准生日延长许可之前,您无法检索他的生日。

+0

是的,我是允许的,只有在那之后我才能拿到一个,实际上我不知道他们又改变了主意,并把生日放进了扩展权限。 – Sarfraz 2010-05-13 06:57:42

1

我已经成功通过离线查询standard_user_infoaccess_token.但我找不到日期格式的文档。我得到的日期就像“1999年3月4日”。

相关问题