我正在尝试在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+"}]";
然后我URL编码请求:字符串查询= URLEncoder.encode(batch_request)
并将其传递给图形 API,如下所示:https://graph.facebook.com/?batch="+查询+"&access_token="+访问令牌
:(我没有得到任何结果。它返回错误 500。
有什么想法吗?
对于 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 获取 thre 查询的整个结果的 json 数组。
来源: https://stackoverflow.com/a/9635233/1045444