Php 检索facebook详细信息相册

Php 检索facebook详细信息相册,php,facebook,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 = 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'
            ));
}
上面的代码返回一个空数组,为什么?有人能指出我的错误吗


提前谢谢

您需要了解您在这里所做的工作,而不仅仅是遵循教程(或教程组合!):

  • 不要使用:
    Facebook:$CURL\u OPTS[CURLOPT\u SSL\u VERIFYPEER]=false
  • 如果您并不真正需要用户数据,则不需要第一个
    if($user)
    语句
    $user\u profile
  • 如果当前用户不需要获取访问令牌,因为SDK将处理该问题
  • 如果您正在使用SDK,为什么要使用
    file\u get\u contents
  • 新的SDK实现(遵循OAuth 2.0)要求您使用
    scope
    而不是
    req\u perms
  • 创建登录URL后,您需要实际使用它 下面是一个更好的开始代码:

    $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>";
    }
    
    $facebook=新的facebook(数组)(
    “appId'=>”,
    '秘密'=>'',
    “cookie”=>正确,
    ));
    $user=$facebook->getUser();
    如果($user){
    试一试{
    $user_albums=$facebook->api('/me/albums');
    }捕获(FacebookApiException$e){
    错误日志($e);
    $user=null;
    }
    }否则{
    $loginUrl=$facebook->getLoginUrl(数组('scope'=>'user\u photos,friends\u photos');
    echo“top.location.href=”$loginUrl.“;”;
    }
    

    我强烈建议您在尝试一些随机代码之前先阅读本手册。

    好吧,我下载了PHP-SDK,他附带了这个示例,我尝试了“做得很好”,以完成优化。我正在使用Facebook:$CURL\u OPTS[CURLOPT\u SSL\u VERIFYPEER]=false;为什么默认API url使用SSL:我在$CURL_OPTSI中看不到这一点,我现在使用的是'scope'而不是'req_perms',一切正常。非常感谢:)