#query1 構文を使用して、最初のクエリの結果を 2 番目のクエリで使用しようとしています。
例えば
fql?q={"query1":"SELECT uid2 FROM friend WHERE uid1=me()","my name":"SELECT name FROM profile WHERE id IN (SELECT uid2 FROM #query1)"}
これは、 https: //developers.facebook.com/tools/explorer の fql クエリ シミュレーターで正常に動作することがわかります。
しかし、PHP 経由でこのクエリを送信しようとすると、実行できません。コード:
$fql_multiquery_url = 'https://graph.facebook.com/'
. 'fql?q={"query1":"SELECT+uid2+FROM+friend+WHERE+uid1=me()","my+name":"SELECT+name+FROM+profile+WHERE+id+IN+(SELECT+uid2+FROM+#query1)"'
. '&access_token=' . $access_token;
$fql_multiquery_result = file_get_contents($fql_multiquery_url);
$fql_multiquery_obj = json_decode($fql_multiquery_result, true);
# の前の + には問題があると思います。