2012-12-10 66 views
0

我想知道如何獲得Facebook用戶的生日日期。 這裏是對付Facebook的API代碼:Facebook應用程序:獲得生日

<?php require 'src/facebook.php'; 
define("FB_APP_ID","***"); 
define("FB_SECRET","***"); 
$facebook = new Facebook(array(
    'appId' => FB_APP_ID, 
    'secret' => FB_SECRET, 
    'cookie' => true, 
)); 
$currentUser = $facebook->getUser(); 
if($currentUser) { 
try 
{ 
    $facebook_profile = $facebook->api('/me'); 
    $friends_fields = $facebook->api('/me/friends'); 
} 
catch (FacebookApiException $e) 
{ 
    print_r($e); 
    $user = null; 
} 
} 


$loginUrl = $facebook->getLoginUrl(
array(
    'scope' => 'user_birthday, birthday, date_birthday, email, offline_access, publish_stream' 
) 
); 
$logoutUrl = $facebook->getLogoutUrl(); 
?> 

我試過$ facebook_profile [ 'user_birthday']和$ facebook_profile [ '生日'] 但它不工作。

我不知道該怎麼辦?你能幫我嗎 ?

回答

0

生日正確的權限是user_birthday

確保你使用的權限

$permissions = $facebook->api('/me/permissions'); 
$permissions["data"][0]["user_birthday"]; 

看到你有facebook_profile,你應該只轉儲響應的內容,看看你有什麼。

而且保證了用戶設置他/她的生日...

+0

$ facebook_profile顯示 'Array([id] => *** [name] => *** [first_name] => *** [last_name] => ** [link] => http:/ /www.facebook.com/*** [用戶名] => *** [性別] =>女性[email] => *** [時區] => 1 [區域設置] => fr_FR [已驗證] => 1 [updated_time] => 2012-12-10T16:25:31 + 0000)' 它不引用user_birthday。 用戶確實有生日。 「count($ permissions [」data「] [0]);」顯示10,當我做一個'foreach($ permissions [「data」] [0]作爲$ p){echo $ p;}'我有「1111111111」,所以我確實有權限 – user1728824

+0

@ user1728824,你有權限,它證明你有10項權限。請檢查'$ permissions [「data」] [0] [「user_birthday」] == 1' – phwd

+0

您說得對,我沒有權限,'if($ permissions [「data」] [0] [「user_birthday 「] == 1){ \t \t \t echo」permission ok「; \t \t} else { \t \t \t echo「no permission」; \t \t}'顯示的 「沒有權限」 – user1728824

0

有可能做到這一點的方法不止一種,但你應該通過the SDK api() method能夠得到來自FQL呼叫的用戶的生日:

$result = $facebook->api(array(
    'method' => 'fql.query', 
    'query' => 'SELECT birthday_date FROM user WHERE uid = me()', 
)); 

$birthday = $result[0]['birthday_date']; 

你需要有user_birthdayfriends_birthday權限讀取birthdaybirthday_date字段。

+0

我如何獲得的權限? – user1728824

+0

當您最初提示用戶授予對您的應用程序的訪問權限時。 –

+0

是的,我找到了。謝謝 – user1728824

相關問題