我试图下载我在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
网址。获取next
网址只返回1张图片,总共15张。
api电话回复照片的更多细节:
创建时间范围从2013-08-25到2015-10-10 5张由朋友上传的照片和标签,10由我自己上传。
当我看到" /你的照片/照片"在我的个人资料页面中,我看到的图片比API返回的要多得多(2015年为50+,之前为数百年)。返回的15张是我上传的图片和由朋友上传的图片的混合物,然后他们标记了我。
答案 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