Facebook API:获取所有个人资料照片

24

如何获取给定用户的所有个人资料图片?我需要哪些权限?

我知道可以使用https://graph.facebook.com/[uid]/picture来访问主要个人资料图片,但是如何获取整个相册呢?

6个回答

54

我如何获取整个专辑?

你需要使用 https://graph.facebook.com/[uid]/albums?access_token=[AUTH_TOKEN] 来获取用户所有专辑的JSON数组。

你将从中得到三个重要的信息,id表示专辑的ID,name表示专辑名称,type表示专辑类型。

需要哪些权限?

需要的权限是 user_photos,请参考这里

获取给定用户的所有个人资料照片的最佳方法是什么?

个人资料照片位于“个人资料照片”相册中。要进入个人资料相册,您需要查看专辑数组(如前所述),遍历JSON结果集,直到找到名称为Profile Pictures且类型为profile的相册。获取此对象的id,这就是个人资料照片相册。

现在可以像访问其他相册一样访问它。也就是说,https://graph.facebook.com/[ALBUM_ID]/photos?access_token=[AUTH_TOKEN] 这将列出用户曾经上传的所有个人资料照片。

希望这可以帮到你。

参考:http://developers.facebook.com/docs/reference/api/


1
他们能否更改个人资料图片相册的名称?相册名称值得信任吗? - Andy Hin
2
依赖于 type。据我所知,profile pictures 相册的名称不可编辑。 - Nishant
2
@Nishant,如果有很多个人资料图片(即100张照片),您将如何使用https://graph.facebook.com/[ALBUM_ID]/photos?access_token=[AUTH_TOKEN]获取所有照片?因为它目前在第25张照片后停止。 - NateHill
能否按照设定为个人资料照片的日期排序图片?我想要最近的5张个人资料照片。 - Rony Tesler
能否获取朋友的相册? - Ronak Patel
显示剩余3条评论

9
你可以传递参数"limit=0"来避免分页,从而在一个请求中获取所有的照片。

5
要获取所有的个人资料图片,首先需要获取所有相册的列表,但如果相册数量超过24个,你将无法获得其余部分,也可能无法获取个人资料照片相册。为此,您需要传递limit=0以获取相册URL。
以下是示例代码:
$tokenUrl = "https://graph.facebook.com/oauth/access_token?client_id=$yourAppId&redirect_uri=$yourRedirectUrl 
                &client_secret=$yourAppSecret&code={$_GET["code"]}";

$accessToken = file_get_contents($tokenUrl);

$extAlbumUrl = "https://graph.facebook.com/me/albums?$accessToken&limit=0";

$albums = json_decode(file_get_contents($extAlbumUrl)); 

2

1

有一些方法可以获取公共用户的相册,而不需要任何关系。例如,我不是用户“foo”的朋友,但我想要他的照片。我可以在Facebook的UI中看到他的照片,但我无法通过图形获取。

我正在使用Facebook的浏览器,并拥有所有权限,但我始终得到一个空的JSON。 有没有办法获取我在UI中看到的照片?这些照片是公开的。

真实例子:

Facebook的UI: https://www.facebook.com/sonia.milan.9/photos 您可以查看他的所有照片。

使用图形API: sonia.milan.9/albums 返回:

{
  "data": [
  ]
}

抱歉,此内容链接当前无法访问。 - Tzvi Gregory Kaidanov

0

你可以使用分页和偏移量来获取下一个5或更改限制为任何值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接