2012-07-29 59 views
0

我正在使用FQL.I想要檢索朋友的標記照片。 我正在使用此查詢。無法使用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

我早些時候在stackoverflow上回答了類似的問題。以下是相同的鏈接。在這個我正在獲取用戶的標記照片。你可以修改朋友的照片。

How to retrieve ALL Facebook photos a person is tagged in

解決方案的要點是,你的查詢,你將永遠不會得到完整的數據。我在我的應用程序中嘗試過。例如,我測試的用戶有700多張照片。但類似於您的查詢僅返回了300多張照片。

所以我的建議是從photo_tags獲取photoID列表,即object_id,並使用BATCH請求來獲取它們。

希望這會有所幫助。

感謝

考希克

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]添加到photophoto_tag查詢中。如果您使用500作爲[results],則可以使用0,500,1000,1500 ...作爲循環查詢的[offset]的值。當它返回一個空數組時停止。