Facebook への接続と構成で 3 つのクエリをすべてセットアップしました。戻り値を取得しているため、構成は正しいです。これが私のクエリです:
$fql_friends_fan_pages = array(
'query1' => "SELECT uid2 FROM friend WHERE uid1 = me()", //get all me()'s friends
'query2' => "SELECT page_id FROM page_fan WHERE uid IN (SELECT uid2 FROM #query1)", //get all fan page references from friends
'query3' => "SELECT name FROM page WHERE page_id IN (SELECT page_id FROM #query2)" //get all info from friends' fan pages
);
返されるのは、3 番目ではなく 2 番目のクエリの結果です。完全に無視しているようです。すべての友達のページの情報を取得しようとしています。すべての名前を取得する代わりに、(query2 から) 各ページの page_id を出力します。3 番目のクエリを無視する理由がわかりましたか?
編集:
最初のクエリと 2 番目のクエリを 1 つの大きなクエリにマージすることで、なんとか機能させることができました。FQL マルチクエリで 2 つのクエリの既知の制限はありますか?
$fql_friends_fan_pages = array(
'query1' => "SELECT uid2 FROM friend WHERE uid1 = me()", //get all me()'s friends
'query2' => "SELECT page_id FROM page_fan WHERE uid IN (SELECT uid2 FROM #query1)", //get all fan page references from friends
'query3' => "SELECT name FROM page WHERE page_id IN (SELECT page_id FROM #query2)" //get all info from friends' fan pages
);
$params_friends_fan_pages = array(
'method' => 'fql.multiquery',
'queries' => $fql_friends_fan_pages
);
$friends_fan_pages = $facebook->api($params_friends_fan_pages);