2

Java でグラフ API に対してバッチ リクエストを使用しようとしています。実際にグラフ API リクエストを行っているのは HTTPClient です。

次のようなバッチ リクエストの配列を作成しようとしました。

String query2 = "SELECT --- from tableX";

    String query = "SELECT --- from tableY";

    String batch_request= "[{\"method\":\"GET\",\"relative_url\":method/fql.query?query="+query+"},"+
    "{\"method\":\"GET\",\"relative_url\":method/fql.query?query="+query2+"}]";

次に、リクエストを URLEncode します。 String query = URLEncoder.encode(batch_request)

そして、次のようにグラフ API に渡します: https://graph.facebook.com/?batch= "+query+"&access_token="+accessToken

結果が得られません:(。エラー500が返されます。

何かご意見は?

4

1 に答える 1

0

fql クエリのバッチ リクエストの場合、これを行うことができます。私はそれをうまく試しました。

//$current_user=Facebook ID

 $query1="SELECT uid, name FROM user WHERE is_app_user=1 AND uid IN (SELECT uid2 FROM friend WHERE uid1 = $current_user)";
 $query2="SELECT uid, name, work_history FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = $current_user )";
 $query3="SELECT uid, name, work, education FROM user WHERE uid = $current_user";
 $queries = array(
           array('method'=>'GET', 'relative_url'=>'method/fql.query?query='.str_replace(' ','+',$query1)),
           array('method'=>'GET', 'relative_url'=>'method/fql.query?query='.str_replace(' ','+',$query2)),
           array('method'=>'GET', 'relative_url'=>'method/fql.query?query='.str_replace(' ','+',$query3))
            );

            $objs = $facebook->api('/?batch='.json_encode($queries), 'POST');

$objs は、3 つのクエリの結果全体の json 配列を取得します。

ソース: https://stackoverflow.com/a/9635233/1045444

于 2012-06-26T06:32:02.730 に答える