如何获得朋友的照片总数

时间:2012-06-14 09:42:36

标签: facebook facebook-graph-api

我想得到朋友的照片总数,因为 当我使用

$photos = $friend_id.'/photos';

我没有得到所有的照片。例如,如果一个朋友有600张照片,我只能得到180左右的数字或类似的东西,刷新页面后,我得到更多的照片,但没有得到所有的照片。

所以我尝试使用

$photos = $friend_id.'/photos?limit=600';

并收到以下错误

Notice: Undefined index: data in *\friends-photos.php on line 107
0
Notice: Undefined index: data in *\friends-photos.php on line 115

Warning: Invalid argument supplied for foreach() in *\friends-photos.php on line 115

Notice: Undefined index: paging in *\friends-photos.php on line 132

错误行中的代码如下

 $var = $dp["data"] ; ------107  
 foreach ($dp["data"] as $value) ---------115 
 $next_page = $dp["paging"]["next"]; --------132

2 个答案:

答案 0 :(得分:0)

您需要使用untillimit字段或limitoffset字段

if($user_id) {
    $the_photos = array();
    $friend_id = '4'; // user id

    $friend_photos = $facebook->api($friend_id."/photos");

    while ($friend_photos['data'])
    {
        $the_photos = array_merge( $the_photos, $friend_photos['data'] );

        $paging = $friend_photos['paging'];
        $next = $paging['next'];

        $query = parse_url($next, PHP_URL_QUERY);
        parse_str($query, $par);

        $friend_photos = $facebook->api(
            $friend_id."/photos", 'GET', array(
                'limit' => $par['limit'],
                'until'  => $par['until'] ));
    }

    echo count($the_photos);
}

我想您在朋友的个人资料中看到的照片编号包含对其有一定隐私限制的照片,因此很可能与此处的编号不符。

有关详细信息,请参阅

答案 1 :(得分:0)

根据https://developers.facebook.com/docs/reference/api/user/

用户ID的“照片”关系是“用户(或朋友)标记为的照片。”

在这种情况下,您可以获得用户被标记的照片数量。不是他相册中的照片总数。


并在https://developers.facebook.com/docs/reference/fql/photo/

'owner'列不可索引。因此,我们无法直接按所有者ID选择所有照片。

目前我找不到简单的方法来获取照片总数。我能做的是选择朋友的所有专辑并浏览所有专辑以获得每张专辑中的照片数量。但它真的很慢......