如何获取专辑图片,朋友按Facebook图形API计算?

时间:2016-01-10 06:08:34

标签: facebook facebook-graph-api facebook-php-sdk

我使用脸谱图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;

        }
    }
}

1 个答案:

答案 0 :(得分:0)

在文档中了解登录审核:https://developers.facebook.com/docs/facebook-login/review

大多数权限仅适用于在App中具有角色的用户。如果您想公开您的应用程序,您必须发送这些权限以供审核。在使用App Admin / Developer进行授权时,您实际上应该收到一个非常明显的红色警告。