2011-12-29 4 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

タイムアウトですか?ページには多数のアルバムがありますか? –

答えて

1

これは、複数のクエリではなく、ネストされたクエリで実行できます。例えば

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

ここでは、アルバムのリストは、私が

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

が返さコカコーラのFacebookページからもらったカバーしています:

{ 
    "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" 
    } 
    ] 
} 

をあなたが複数の問合せを試してみたい場合は、名前を付けてみてください1の代わりにインデックス0から始まるクエリquery0とquery1これは、C#SDKが許可する唯一の方法です。おそらくPHP SDKもそれを必要とします。

+0

お返事ありがとうございます!私もアルバムの名前を知る必要がありました。私が読んだところでは、私はこのマルチクエリーが必要だと思います。 – teamdane

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)" 

}'; 
関連する問題