如何通过Facebook graph API获取相册图片、好友数?

如何通过Facebook graph API获取相册图片、好友数?,facebook,facebook-graph-api,facebook-php-sdk,Facebook,Facebook Graph Api,Facebook Php Sdk,我正在使用facebook graph SDK访问facebook用户的相册图片、个人资料图片、好友数和其他用户基本信息。但它做了一些奇怪的事情,它只显示API帐户所有者帐户的相册,而没有显示任何用户通过facebook登录。 我正在使用以下代码,请有人帮助我,并指导我哪里出错。 多谢各位 include_once(BASE_DIR.'/utils/facebook/autoload.php'); $fb = new Facebook\Facebook(array( 'app_id' =&g

我正在使用facebook graph SDK访问facebook用户的相册图片、个人资料图片、好友数和其他用户基本信息。但它做了一些奇怪的事情,它只显示API帐户所有者帐户的相册,而没有显示任何用户通过facebook登录。 我正在使用以下代码,请有人帮助我,并指导我哪里出错。 多谢各位

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参考,它们很好地解释了您从哪个端点获得的数据。用户通过facebook api登录,并提供访问其照片的身份验证,但它仅适用于api所有者,而不适用于通过facebook api登录的其他用户