我正在使用FQL。我想要检索朋友的标记照片。 我正在使用此查询。
SELECT pid,images FROM photo WHERE pid IN (
SELECT pid FROM photo_tag WHERE pid IN (
SELECT pid,images FROM photo WHERE aid IN (
SELECT aid FROM album WHERE owner IN
SELECT uid,username,pic FROM user WHERE uid IN
SELECT uid2 FROM friend WHERE uid1 = me())
))))
但它的回收率低于我的预期。 我认为从相册中检索照片时有限制。
如何检索更多照片?
答案 0 :(得分:0)
首先,简化您的查询:您不需要查看album
,所以摆脱所有垃圾。对于面向未来的事情,object_id
比pid
更受欢迎,因此我们将使用它。
SELECT object_id, images FROM photo WHERE object_id IN (
SELECT object_id FROM photo_tag WHERE subject IN (
SELECT uid2 FROM friend WHERE uid1 = me()) OR subject = me()
)
这会为我返回376张照片。
如果您需要更多内容,则需要在LIMIT [offset] [results]
和photo
查询中添加photo_tag
多次执行此查询。如果对[results]
使用500,则在循环执行此查询时,将使用0,500,1000,1500 ...作为[offset]
的值。当它返回一个空数组时停止。
答案 1 :(得分:0)
我之前在stackoverflow上回答了类似的问题。以下是相同的链接。在这里,我正在获取用户标记的照片。您可以为朋友的照片修改相同内容。
How to retrieve ALL Facebook photos a person is tagged in
解决方案的GIST是您的查询永远不会得到完整的数据。我在我的应用程序中尝试过相同的操作。例如,对于我测试的用户,有700多张照片。但是类似于你的查询只返回了300多张照片。
所以我的建议是从photo_tags获取photoID列表,即object_id,并使用BATCH请求来获取它们。
希望这有帮助。
由于
考希克