时间轴相册中缺少照片

时间:2013-11-30 11:40:50

标签: facebook api facebook-graph-api

我正在使用Facebook Graph API来获取用户graphPath: me/albums的所有照片,并在时间轴照片专辑中找到奇怪的内容。

照片存在于Facebook上的时间轴相册中,但未从API调用graphPath/{timeline_photos_album_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_photos_album_id}/photos

{
    data =     (
    );
}

4 个答案:

答案 0 :(得分:3)

不幸的是"it is not a bug, it is by design"。这个设计很糟糕!

答案 1 :(得分:2)

我尝试了以下(使用“user_photos”权限)并且它可以工作:

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

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}

答案 2 :(得分:1)

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

答案 3 :(得分:1)

我认为您错过了访问令牌中的user_photos权限。终点: 当我尝试使用Graph API资源管理器从我的时间轴相册中检索照片时,/{timeline_photos_album_id}/photos对我来说非常合适。并且,我认为没有必要提供这些字段。

我建议您使用Graph API Explorer尝试相同的操作。只需按右上角的获取访问令牌按钮,然后查看user_photos权限即可测试您的请求。


如果结果较差,您可以使用分页选项limitoffset来尝试查询。与正常情况相比,这有时会返回更多结果(在文档上没有任何相关内容,仅仅是我的个人经验)。类似的东西:

{timeline_photo_album_id}/photos?limit=500&offset=0

但是,正如你所指出的那样,API也有一些奇怪的事情发生。看看this article。本文将其称为API的预期行为!