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

时间:2011-02-20 16:00:43

标签: facebook facebook-graph-api

从给定用户那里获取所有个人资料照片的最佳方式是什么?我需要什么权限?

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

6 个答案:

答案 0 :(得分:53)

  

如何获得整张专辑?

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

您将从此处获得三件重要事项id - 相册ID,name - 相册名称和type - 相册类型。

  

我需要什么权限?

所需权限为user_photos see here

  

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

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

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

希望这有帮助。

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

答案 1 :(得分:9)

您可以传递“limit = 0”以完全避免分页,并且您可以在一次通话中获得所有照片。

答案 2 :(得分:5)

要获取所有个人资料照片,首先您需要获取所有相册的列表,但如果超过24个相册的数量,您将无法获得其余部分,您可能无法获得个人资料相册。为此,您需要通过limit=0来获取相册网址。

以下是示例代码:

$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)); 

答案 3 :(得分:2)

我们不会直接获取所有个人资料图片,我们需要使用以下网址

获取所有相册

https://graph.facebook.com/v2.10/ 472802896428726/albums?access_token={access_token}&fields=id,name,cover_photo,count,from,type

使用 type = profile and name = Profile Pictures 的条件过滤数组 然后使用相册ID使用以下网址

获取照片

https://graph.facebook.com/v2.10/ 124683854573967/photos?access_token={access_token}&fields=id,source

答案 4 :(得分:1)

有一些方法可以获得没有任何关系的公共用户的专辑。例如,我不是用户“foo”的朋友,但我想要他的照片。我可以在Facebook的用户界面中看到他的照片,但我无法浏览图表。

我正在使用facebook的浏览器获得所有权限,而且我总是得到一个空的JSON。 有一些方法可以获取我在UI中看到的照片吗?这些照片是公开的。

真实的例子:

来自facebook的用户界面: https://www.facebook.com/sonia.milan.9/photos你可以看到他所有的照片。

使用图谱API: sonia.milan.9 /相册 返回:

{
  "data": [
  ]
}

答案 5 :(得分:0)

您使用分页和偏移来获得下一个5或将限制更改为任何内容。