2011-09-16 27 views
0

我試着用此代碼檢索專輯的詳細信息:檢索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' 
      )); 
} 

上面的代碼返回一個空數組,爲什麼呢?有人能指出我的錯誤嗎?

在此先感謝!

回答

2

那麼你需要了解你在做什麼這裏不只是跟着教程(或教程的組合!):

  1. 不要使用:
  2. 不需要Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;第一if($user)聲明如果你不真正需要的用戶數據$user_profile
  3. 如果有一個當前用戶無需獲得訪問令牌,因爲SDK會採取的是
  4. 護理爲什麼使用file_get_contents如果您正在使用日e SDK?!
  5. 新的SDK實現(的OAuth 2.0以下),要求你創建你需要實際使用它登錄URL後使用的scope代替req_perms

這裏是一個更好的代碼,讓你開始:

$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

+0

嗯,我下載了PHP-SDK,他跟着這個例子,我試着做的很好,去寫優化後去。我使用 Facebook :: $ CURL_OPTS [CURLOPT_SSL_VERIFYPEER] = false; 爲什麼在默認情況下API url使用SSL:https://graph.facebook.com 我沒有在$ CURL_OPTS中看到這個 –

+0

我現在使用'範圍'而不是'req_perms'一切正常。非常感謝 :) –