Facebook 时间线照片相册中缺少照片

Facebook 时间线照片相册中缺少照片,facebook,api,facebook-graph-api,Facebook,Api,Facebook Graph Api,我正在使用Facebook Graph API获取用户的所有照片graphPath:me/albums,并在Timeline photos album中发现一些奇怪的东西 照片存在于Facebook上的Timeline album中,但未从API调用graphPath/{Timeline\u Photos\u album\u id}/Photos返回,或者返回的照片数量较少 有什么问题 日志: 调用相册graphPath:me/albums: ..... { "can_upload"

我正在使用Facebook Graph API获取用户的所有照片
graphPath:me/albums
,并在Timeline photos album中发现一些奇怪的东西

照片存在于Facebook上的Timeline album中,但未从API调用
graphPath/{Timeline\u Photos\u album\u id}/Photos
返回,或者返回的照片数量较少

有什么问题

日志:

调用相册
graphPath:me/albums

.....
{
     "can_upload" = 0;
      count = 3; !!!!!!!!!!!
      "created_time" = "2013-06-18T10:43:27+0000";
      description = cool;
      from = {
                id = 100006100533891;
                name = "Mike Mike";
            };
      id = 1387760311437307;
      link = "https://www.facebook.com/album.php? 
          fbid=1387760311437307&id=100006100533891&aid=1073741829";
      name = "Timeline Photos";
      privacy = everyone;
      type = wall;
      "updated_time" = "2013-06-18T10:47:53+0000”;
 },
 .....
调用相册照片
graphPath/{timeline\u photos\u album\u id}/photos

{
    data =     (
    );
}

最近FB API发生了变化,您是否尝试在API的结果中添加想要返回的字段?在过去,API总是返回“标准字段”,最新的是,您总是必须提供一个字段列表,其中包含您希望返回结果的字段,例如
…fields=name,id…。

我认为您缺少访问令牌中的
用户照片
权限。结束点:
/{timeline\u photos\u album\u id}/photos
在我尝试使用Graph API Explorer从我的timeline photos相册中检索照片时,效果非常好。而且,我认为没有必要提供这些字段

我建议你用同样的方法试试。只需按下右上角的获取访问令牌按钮并检查
用户照片
权限即可测试您的请求


如果得到的结果较少,可以使用分页选项
limit
offset
尝试查询。与正常情况相比,这有时会返回更多的结果(在文档中与此无关,只是我的个人经验)。比如:

{timeline_photo_album_id}/photos?limit=500&offset=0
但是,正如您所指出的,API中发生了一些奇怪的事情。看一看。本文将其称为API的预期行为

我尝试了以下方法(具有“用户照片”权限),效果良好:

获取我的用户的相册照片计数:

https://graph.facebook.com/me/albums?fields=id,count&access_token={access_token}
结果是

{
  "data": [
    {
      "id": "{album_id}", 
      "count": 161, 
      "created_time": "2010-11-05T15:41:42+0000"
    }, 
    ....
}
然后查询此相册的照片:

https://graph.facebook.com/{album_id}/photos?fields=id&limit=500&access_token={access_token}
结果是

{
  "data": [
    {
      "id": "{photo_id1}", 
      "created_time": "2013-12-29T09:59:52+0000"
    }, 
    {
      "id": "{photo_id2}", 
      "created_time": "2013-12-17T10:40:26+0000"
    },
    ...
}
我在结果中计算了161个ID的正确数目。看来一切都很顺利

您还可以通过FQL对此进行测试:

https://graph.facebook.com/fql?q=select+pid+from+photo+where+album_object_id+=+{album_id}+limit+1000&access_token={access_token}

很遗憾。

您是否检查了每个墙柱的权限和可见性状态?如果其中一些被限制在非常狭窄的组中,它可能不会显示在照片列表中。@SimonBoudrias好主意!我认为许可可能是原因之一!谢谢你的介绍。尝试一下:我认为graphPath/{timeline\u photos\u album\u id}/photos的响应不正确,因为它不是有效的JSON…不正确。我试图检索我的照片,但也遇到了同样的问题。计数返回83,我收到53。它也发生在图形API浏览器中。谢谢你的链接!我已经更新了我的答案。你可以看看。但我想你是对的。Facebook API有时很糟糕。它的行为完全出乎意料。字段与我无关。我只想收到相同数量的照片,正如我/相册请求者在albom计数中所说的那样,你期望得到什么?15张照片15张空记录?如果你不打算给我15张照片,不要说你会看@Tobi的答案,他的方法就是证实我说的。