我正试着从facebook上下载所有被标记的照片。
https://graph.facebook.com/me/photos?access_token=blah
返回一个包含15张图片和分页对象的data[]:
'paging': { 'cursors': { 'after': 'afterHash', 'before': 'beforeHash' } }
我希望在next和previous的paging中看到更多的照片。
调用:https://graph.facebook.com/me/photos?access_token=blah&type=tagged&after=afterHash返回一个空的data[]
将&limit=14添加到请求中将返回14张图片和我期望的next url。但是,获取next url只返回1张图片,总共15张。
有关api调用返回的图片的更多详细信息:
创建的时代范围从2013-08-25到2015年-10-10 5照片上传的朋友和标签,10由我上传。
当我从我的个人资料页面看到"/Photos/Photos of You“时,我看到的图片比API返回的图片多得多(50+用于2015年,在此之前数百年)。被退回的15张图片是我上传的图片和朋友上传的图片的混合体,朋友随后给我贴上标签。
发布于 2015-12-26 20:39:08
默认情况下,从照片边缘读取的内容包括一个人已被标记的所有照片。
所需许可: user_photos
参考资料:https://developers.facebook.com/docs/graph-api/reference/user/photos
您可以进行以下API调用。因为没有人在99,99,99,999,999,999照片上加上标签。
https://graph.facebook.com/me/photos?fields=images{source}&limit=999999999999999&access_token=xxxxx你可以取回时间线上允许的所有照片。你可以从这里看到:of
下面是示例php代码,它将使用curl获取所有照片的源代码:
<?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>";
}
?>发布于 2015-12-23 10:40:23
首先,您的访问令牌是使用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
https://stackoverflow.com/questions/34372950
复制相似问题