在php中获取所有facebook朋友的生日

时间:2013-05-08 11:17:55

标签: facebook facebook-graph-api

我的代码

 require 'src/facebook.php';
 $app_id = 'My App Id';
 $app_secret = 'My App Secret Id';
 $facebook = new Facebook(array(
'appId'  => $app_id,
'secret' => $app_secret,
'cookie' => true,
 ));
 $user = $facebook->getUser();
 if ($user) {    
    $user_albums = $facebook->api('/me/friends?fields=id,name,birthday');
 }
 if ($user) {
 $params = array( 'next' => 'http://localhost/friends_bday/logout.php?logout=1' );
 $logoutUrl = $facebook->getLogoutUrl($params);
 } else {
 $loginUrl = $facebook->getLoginUrl(array(
    'scope' => 'user_photos'
));
 }

我需要什么

以上代码仅提供朋友ID和姓名,但不提供生日。我做了一些研究,并没有找到解决方案。

1 个答案:

答案 0 :(得分:3)

您可能需要请求用户访问其朋友的生日信息的权限。 您正在寻找的Facebook权限是'friends_birthday'。

请求用户使用具有上述权限的访问令牌并设置访问令牌。

$facebook = new Facebook(array(
   'appId'  => $app_id,
   'secret' => $app_secret,
   'cookie' => true,
   )
);
$facebook->setAccessToken($userAccessToken);
$user = $facebook->getUser();

if ($user) {    
   $user_albums = $facebook->api('/me/friends?fields=id,name,birthday');
}

if ($user) {
   $params = array( 'next' => 'http://localhost/friends_bday/logout.php?logout=1' );
   $logoutUrl = $facebook->getLogoutUrl($params);
} else {
   $loginUrl = $facebook->getLoginUrl(array(
      'scope' => 'user_photos, friends_birthday'
   ));
}

实际上我认为你只需要将friends_birthday添加到范围内。