0

我想知道如何获取 facebook 用户的生日日期。这是处理 facebook api 的代码:

<?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['birthday'] 但它不起作用。

我不知道该怎么办?你能帮我吗 ?

4

2 回答 2

0

可能有不止一种方法可以做到这一点,但您应该能够通过SDKapi()方法从 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权限才能读取birthdayandbirthday_date字段。

于 2012-12-10T15:27:43.077 回答
0

生日的正确权限是user_birthday

验证您是否有权限

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

看到你有facebook_profile,你应该只转储那个响应的内容,看看你有什么。

还要确保用户确实设置了他/她的生日......

于 2012-12-10T15:33:23.443 回答