检索Facebook详细信息专辑

时间:2011-09-16 19:39:35

标签: php facebook

我尝试使用以下代码检索相册详情:

$facebook = new Facebook(array(
  'appId'  => '',
  'secret' => '',
  'cookie' => true,
));

Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false; 
$user = $facebook->getUser();
if ($user) {
  try {
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}
if ($user) {
$access_token = $facebook->getAccessToken();
$album = file_get_contents("https://graph.facebook.com/me/albums/?access_token={$access_token}");
    print_r($album); 
}else {
    $loginUrl = $facebook->getLoginUrl(
            array('canvas' => 1,
                 'fbconnect' => 0,
                 'req_perms' => 
                  'user_photos,friends_photos'
            ));
}

上面的代码返回一个空数组,为什么?有人可以指出我的错误吗?

提前致谢!

1 个答案:

答案 0 :(得分:2)

你需要了解你在做什么,而不仅仅是遵循教程(或教程的组合!):

  1. 请勿使用:Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
  2. 如果您确实不需要用户数据if($user)
  3. ,则不需要第一个$user_profile语句
  4. 如果当前用户不需要获取访问令牌,因为SDK会处理
  5. 如果您使用SDK,为什么要使用file_get_contents
  6. 新的SDK实施(在OAuth 2.0之后)要求您使用scope代替req_perms
  7. 创建登录URL后,您需要实际使用它!
  8. 这是一个更好的代码,可以帮助您入门:

    $facebook = new Facebook(array(
      'appId'  => '',
      'secret' => '',
      'cookie' => true,
    ));
    
    $user = $facebook->getUser();
    if ($user) {
      try {
        $user_albums = $facebook->api('/me/albums');
      } catch (FacebookApiException $e) {
        error_log($e);
        $user = null;
      }
    } else {
        $loginUrl = $facebook->getLoginUrl(array('scope' => 'user_photos,friends_photos'));
        echo "<script>top.location.href = '" . $loginUrl . "';</script>";
    }
    

    强烈建议您在尝试使用随机代码之前先阅读documentation