Facebook Graph API仅返回15张没有分页选项的照片

时间:2015-12-19 16:36:32

标签: facebook rest facebook-graph-api

我试图下载我在Facebook上标记过的所有照片。

https://graph.facebook.com/me/photos?access_token=blah

返回包含15张图片和分页对象的data[]

'paging': { 'cursors': { 'after': 'afterHash', 'before': 'beforeHash' } }

我希望在next中看到previouspaging个网址,以获取更多照片。

致电:https://graph.facebook.com/me/photos?access_token=blah&type=tagged&after=afterHash返回空的data[]

向请求添加&limit=14会返回14张图片和我期望的next网址。获取next网址只返回1张图片,总共15张。

api电话回复照片的更多细节:

创建时间范围从2013-08-25到2015-10-10 5张由朋友上传的照片和标签,10由我自己上传。

当我看到" /你的照片/照片"在我的个人资料页面中,我看到的图片比API返回的要多得多(2015年为50+,之前为数百年)。返回的15张是我上传的图片和由朋友上传的图片的混合物,然后他们标记了我。

2 个答案:

答案 0 :(得分:2)

默认情况下,从照片边缘读取包含所有已标记人物的照片。

  

必需许可:user_photos

Referance:https://developers.facebook.com/docs/graph-api/reference/user/photos

您可以进行以下API调用。因为在999,999,999,999,999照片中没有人标记。

https://graph.facebook.com/me/photos?fields=images{source}&limit=999999999999999&access_token=xxxxx

您可以检索时间轴上允许的所有照片。你可以从这里看到: https://www.facebook.com/your_username_or_id/photos_of

以下是使用curl获取所有照片源代码的示例php代码:

<?php
$curl = curl_init();
curl_setopt_array($curl,array(
    CURLOPT_RETURNTRANSFER =>1,
    CURLOPT_URL => 'https://graph.facebook.com/me/photos?fields=images{source}&limit=999999999999999&access_token=xxxxx',
    CURLOPT_SSL_VERIFYPEER => false
));
$array = json_decode(curl_exec($curl),true);
curl_close($curl);

for( $i = 0; $i<count($array['data']);$i++) 
{
    echo  $array['data'][$i]['images'][0]['source']."</br>";
}
?>

答案 1 :(得分:0)

首先是您使用user_photos权限请求的访问令牌?

此外,取自https://developers.facebook.com/docs/graph-api/reference/photo

  

用户访问令牌可能会读取用户被标记的照片   已授予user_photos或user_posts权限。但是,在   在某些情况下,照片所有者的隐私设置可能不允许您的   应用程序来访问它。

但最有可能的是,您需要询问所有相册(通过https://graph.facebook.com/me/albums?access_token=blah),然后依次询问所有相册中的所有相册。您正在检索的15张照片 Get all photos of a page using Facebook API 中提到的首张专辑中的照片

在此处试试:https://developers.facebook.com/tools/explorer/?method=GET&path=me%2Falbums&version=v2.5