2010-05-05 25 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日」。

相關問題