从给定用户那里获取所有个人资料照片的最佳方式是什么?我需要什么权限?
我知道我可以使用https://graph.facebook.com/[uid]/picture
访问主要资料图片,但如何获取整个相册?
答案 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]
这将列出用户上传的所有个人资料图片。
希望这有帮助。
答案 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)
我们不会直接获取所有个人资料图片,我们需要使用以下网址
获取所有相册使用 type = profile and name = Profile Pictures 的条件过滤数组 然后使用相册ID使用以下网址
获取照片答案 4 :(得分:1)
有一些方法可以获得没有任何关系的公共用户的专辑。例如,我不是用户“foo”的朋友,但我想要他的照片。我可以在Facebook的用户界面中看到他的照片,但我无法浏览图表。
我正在使用facebook的浏览器获得所有权限,而且我总是得到一个空的JSON。 有一些方法可以获取我在UI中看到的照片吗?这些照片是公开的。
真实的例子:
来自facebook的用户界面: https://www.facebook.com/sonia.milan.9/photos你可以看到他所有的照片。
使用图谱API: sonia.milan.9 /相册 返回:
{
"data": [
]
}
答案 5 :(得分:0)
您使用分页和偏移来获得下一个5或将限制更改为任何内容。