2011-12-29 93 views
0

我正在查詢頁面的所有相冊並獲取每張專輯的封面照片。下面是我有的代碼返回一個空的結果。fql.multiquery返回空數組

我能夠兩個查詢分開沒有問題,所以它不是一個權限問題。

$album_fql = "SELECT aid, owner, name, object_id, cover_pid, cover_object_id 
       FROM album 
       WHERE owner = 'xxxxxxx'"; 

$albumpic_fql = "SELECT pid, src_small 
       FROM photo 
       WHERE pid IN (SELECT cover_pid FROM #query1)"; 

$album_param = array(
       'method' => 'fql.multiquery', 
       'queries' => '{"query1":"' . $album_fql . '", "query2":"' . $albumpic_fql . '"}'); 

$album_fqlResult = $facebook->api($album_param); 

print_r($album_fqlResult); 

任何想法?

+0

是否超時?該頁面是否有大量相冊? – 2011-12-29 22:09:29

回答

1

你可以在嵌套查詢而不是多查詢中做到這一點。

SELECT pid, src_small 
FROM photo 
WHERE pid in (SELECT cover_pid FROM album where owner={page id here}) 

例如這裏的專輯列表中涵蓋了我從可口可樂的Facebook頁面

SELECT pid, src_small 
FROM photo 
WHERE pid in (SELECT cover_pid FROM album where owner=40796308305) 
LIMIT 5 

返回了:

{ 
    "data": [ 
    { 
     "pid": "40796308305_2143765", 
     "object_id": 110516463305, 
     "src_small": "https://fbcdn-photos-a.akamaihd.net/hphotos-ak-snc1/6570_110516463305_40796308305_2143765_6253354_t.jpg" 
    }, 
    { 
     "pid": "40796308305_8753877", 
     "object_id": "10150500888203306", 
     "src_small": "https://fbcdn-photos-a.akamaihd.net/hphotos-ak-ash4/398389_10150500888203306_40796308305_8753877_1814220329_t.jpg" 
    }, 
    { 
     "pid": "40796308305_8751674", 
     "object_id": "10150500434253306", 
     "src_small": "https://fbcdn-photos-a.akamaihd.net/hphotos-ak-ash4/407475_10150500434253306_40796308305_8751674_1040781388_t.jpg" 
    }, 
    { 
     "pid": "40796308305_8742570", 
     "object_id": "10150498588158306", 
     "src_small": "https://fbcdn-photos-a.akamaihd.net/hphotos-ak-ash4/396541_10150498588158306_40796308305_8742570_1378170213_t.jpg" 
    }, 
    { 
     "pid": "40796308305_8742259", 
     "object_id": "10150498546173306", 
     "src_small": "https://fbcdn-photos-a.akamaihd.net/hphotos-ak-snc7/402667_10150498546173306_40796308305_8742259_287537096_t.jpg" 
    } 
    ] 
} 

如果你想試試你multiquery,然後嘗試命名從索引0開始而不是1開始查詢query0和query1這是C#SDK允許的唯一方式,也許php SDK也是如此。

+0

感謝您的迴應!我還需要得到專輯的名稱,從我讀過的內容來看,這需要我認爲的多重查詢。 – teamdane 2011-12-30 16:07:00

1

終於明白了。我不得不將這些查詢合併到1個變量中並且轉義單引號。

$queries = '{ 

"query1" : "SELECT aid, name, cover_pid FROM album WHERE owner = \'xxxxxxxxxxx\'", 

"query2" : "SELECT aid, images FROM photo WHERE pid IN (SELECT cover_pid FROM #query1)" 

}';