-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;
}
}
}
當然它只顯示授權用戶的相冊。你還期望得到什麼?在facebook文檔中查看api參考資料,他們很好地解釋了您獲取哪個端點的數據。 – luschn
用戶通過Facebook API進行日誌記錄,並提供身份驗證來訪問他的照片,但它只適用於API所有者,而不是其他用戶那些通過facebook api登錄的用戶 –