【问题标题】:getting latest photos from friends not working从不工作的朋友那里获取最新照片
【发布时间】:2023-03-26 05:57:02
【问题描述】:

我尝试使用此处描述的方法获取朋友的最新照片: FQL - Can i get photos of my friends posted this week

起初它似乎工作正常,但后来我注意到我朋友的一些照片没有被提取,即使他们有更高的时间戳(照片按创建排序photo FQL 表中的字段)... 经过一番调试,我注意到问题出在

SELECT aid FROM album WHERE owner IN 
  (SELECT uid2 FROM friend WHERE uid1=me()

如果我传递了我朋友 ID 的简短列表,他们将被正确排序,但是当我传递完整列表时,查询结果中并非所有朋友都包含...

任何想法为什么这不起作用?在“SELECT XXX FROM YYY WHERE ZZZ IN (?)”查询中可以传递多少个值是否有任何限制?

提前感谢您的任何建议

【问题讨论】:

    标签: facebook-fql photo


    【解决方案1】:

    限制似乎是在 FQL 查询的任何部分返回大约 5000 条记录。

    假设您的朋友少于 5000 个,您可以通过修改查询以检查 modified_major 列来减少返回的相册数量,以仅返回在感兴趣的时间段内添加了照片的相册。您也可以查看modified 列以返回任何专辑修改。

    此外,aidpid 似乎即将被弃用。新开发应使用object_id 以获得最大兼容性。

    因此,要获取自 2012-10-01 以来更新过照片的所有相册,您可以使用以下查询:

    SELECT object_id FROM album WHERE owner IN 
      (SELECT uid2 FROM friend WHERE uid1=me()) AND modified_major > 1349049600
    

    在您的外部查询中将aid 更改为album_object_idpid 更改为object_id

    【讨论】:

    • 我尝试了以下 FQL 查询:SELECT pid,aid, owner, link, src_big, src_small, created, modified FROM photo WHERE album_object_id IN (SELECT object_id FROM album WHERE owner IN (SELECT uid2 FROM friend WHERE uid1=me()) AND modified_major > 1349049600 ORDER BY modified_major desc ) ORDER BY modified desc 但它仍然不包括所有照片(在我的情况下,您提供的查询仅返回 3 个相册,替换 SELECT uid2 FROM friend WHERE uid1=me () 与我的一个朋友的 ID 显示我在原始查询中未获取其他专辑)
    • NVM,查询可能是正确的,但有一个错误:developers.facebook.com/bugs/102161909944898,不过我会接受你的回答,因为无论如何这是获取照片的更好方法
    • 有趣。我在测试时没有受到这个错误的影响,但那是 Facebook。如果您还没有,请确保您提交了有关该错误的重现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多