2016-01-10 44 views
-1

我正在使用facebook圖形SDK來訪問Facebook用戶的相冊圖片,個人資料圖片,朋友數和其他用戶基本信息。但它是做奇怪的事情,它顯示的只是API賬戶擁有者賬戶的相冊,而不是通過Facebook顯示任何用戶登錄。 我正在使用以下代碼,請有人幫助我,指導我出錯的地方。 非常感謝。如何通過Facebook圖形API獲取相冊圖片,朋友數?

include_once(BASE_DIR.'/utils/facebook/autoload.php'); 
$fb = new Facebook\Facebook(array(
    'app_id' => $fb_app_id, 
    'app_secret' => $fb_app_secret, 

)); 

$helper = $fb->getRedirectLoginHelper(); 
foreach ($_SESSION as $k=>$v) {      
    if(strpos($k, "FBRLH_")!==FALSE) { 
     if(!setcookie($k, $v)) { 

     } else { 
      $_COOKIE[$k]=$v; 
     } 
    } 
} 
$permissions = array('email', 'user_photos', 'user_friends', 'read_custom_friendlists', 'user_status'); 
$loginUrl = htmlspecialchars($helper->getLoginUrl(SITE_URL . '/sign-up.php?do=fb', $permissions)); 
$_SESSION['fui'] = array(); 
foreach ($_COOKIE as $k=>$v) { 
    if(strpos($k, "FBRLH_")!==FALSE) { 
     $_SESSION[$k]=$v; 
    } 
} 

if(isset($_GET['do']) && $_GET['do'] == 'fb'){ 
    foreach ($_COOKIE as $k=>$v) { 
     if(strpos($k, "FBRLH_")!==FALSE) { 
      $_SESSION[$k]=$v; 
     } 
    } 
    try { 
     $accessToken = $helper->getAccessToken(); 
     $response = $fb->get('/me?fields=id,name,email,first_name,last_name,albums', $accessToken); 
     $fb_user_info = $response->getGraphUser(); 
     $fb_first_name = $fb_user_info->getProperty('first_name'); 
     $fb_last_name = $fb_user_info->getProperty('last_name'); 
     $fb_user_id = $fb_user_info->getProperty('id'); 
     $fb_user_email = $fb_user_info->getProperty('email'); 
     $albums = $fb->get('/me/albums', $accessToken)->getGraphEdge()->asArray(); 
     $user_friends = $fb->get('/me/friends?fields=id,name,gender', $accessToken)->getGraphEdge(); 
     $user_fb_photos = array(); 
     foreach($albums as $album_id => $album_data){ 
      $user_fb_photos[$album_data['id']]['name'] = $album_data['name']; 
      $fbPictures = $fb->get("/".$album_data['id']."/photos?fields=picture&limit=12", $accessToken)->getGraphEdge()->asArray(); 
      $user_fb_photos[$album_data['id']]['data'] = $fbPictures; 

     } 
    } 
} 
+0

當然它只顯示授權用戶的相冊。你還期望得到什麼?在facebook文檔中查看api參考資料,他們很好地解釋了您獲取哪個端點的數據。 – luschn

+0

用戶通過Facebook API進行日誌記錄,並提供身份驗證來訪問他的照片,但它只適用於API所有者,而不是其他用戶那些通過facebook api登錄的用戶 –

回答

0

閱讀有關登錄評論的文檔:https://developers.facebook.com/docs/facebook-login/review

大多數的權限僅適用於用戶在App作用的工作。如果您想要將您的應用程序公開,您必須發送這些許可以進行審查。在與App Admin/Developer授權時,實際上應該會看到一個非常明顯的紅色警告。

相關問題