【问题标题】:Missing Photos from Timeline Photos album时间线相册中缺少的照片
【发布时间】:2013-11-30 11:40:50
【问题描述】:

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

照片存在于 Facebook 的 Timeline 相册中,但未从 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 =     (
    );
}

【问题讨论】:

  • 您是否检查了每个墙帖的权限和可见性状态?如果某些仅限于非常狭窄的组,则它可能不会显示在照片列表中。
  • @SimonBoudrias 好主意!我认为许可可能是原因之一!谢谢你的强调。会试一试:P
  • 我认为 graphPath/{timeline_photos_album_id}/photos 的响应不正确,因为它不是有效的 JSON...

标签: facebook api facebook-graph-api


【解决方案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}
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 我不关心这些字段。我只想收到与我/相册请求中的相册数量相同数量的照片
      • 你期待什么?十五张照片,十五张空记录?
      • 如果你不打算给我提供 15 张照片,请不要说你会
      • 看看@Tobi 的回答,他的做法是证实了我所说的。
      【解决方案4】:

      我认为您缺少访问令牌中的user_photos 权限。终点: 当我尝试使用 Graph API Explorer 从我的时间线相册中检索照片时,/{timeline_photos_album_id}/photos 对我来说工作得非常好。而且,我认为没有必要提供这些字段。

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


      如果您得到的结果较少,您可以使用分页选项limitoffset 尝试查询。与正常相比,这有时会返回更多结果(文档上没有关于此的内容,只是我的个人经验)。比如:

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

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

      【讨论】:

      • 不。我尝试检索我的照片并遇到了同样的问题。计数返回 83,我收到 53。它也发生在 Graph API Explorer 中。感谢您的链接
      • 嗨!我已经更新了我的答案。你可以看看它。但我想你是对的。 Facebook API 有时很糟糕。它的行为非常出乎意料。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-16
      相关资源
      最近更新 更多