1

我的代码

 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 和姓名,但没有提供生日。我进行了一些研究,但未能找到解决方案。

4

1 回答 1

2

您可能需要请求用户的许可才能访问他们朋友的生日信息。您正在寻找的 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 添加到范围即可。

于 2013-05-08T11:37:59.507 回答