我在 restfb.com 和https://code.google.com/p/restfb/issues/detail?id=8看到了 FqlMultiQuery 的示例,这些示例涉及单独的查询。
但是,我似乎找不到有关如何使用 FqlMultiQuery 进行类似查询的示例。我所说的类似查询的意思是类似于以下模板/示例:
SELECT uid, name FROM user WHERE uid=220439
SELECT uid, name FROM user WHERE uid=239203
SELECT uid, name FROM user WHERE uid=<<iterate_over_this>>
我试图使用 FqlMultiQuery 来运行类似的查询并获得一个 JsonObject,我可以使用.toString()将其输出为 JSON。尽管如此,我还是试了一下,希望事情会奏效。不幸的是,他们没有。
这是 RestFB 1.6.12 的堆栈:
Exception in thread "main" com.restfb.exception.FacebookResponseStatusException: Received Facebook error response (code 1): An unknown error occurred
at com.restfb.BaseFacebookClient$DefaultLegacyFacebookExceptionMapper.exceptionForTypeAndMessage(BaseFacebookClient.java:143)
at com.restfb.BaseFacebookClient.throwLegacyFacebookResponseStatusExceptionIfNecessary(BaseFacebookClient.java:204)
at com.restfb.DefaultFacebookClient.throwFacebookResponseStatusExceptionIfNecessary(DefaultFacebookClient.java:666)
at com.restfb.DefaultFacebookClient.makeRequestAndProcessResponse(DefaultFacebookClient.java:630)
at com.restfb.DefaultFacebookClient.makeRequest(DefaultFacebookClient.java:592)
at com.restfb.DefaultFacebookClient.executeFqlMultiquery(DefaultFacebookClient.java:396)
at com.hadoopfun.facebookanalysissimple.FacebookAnalysisProject.main(FacebookAnalysisProject.java:89)
下面是生成 FQL 请求和执行 FqlMultiQuery 的代码:
Map<String, String> queries = new HashMap<String, String>();
for(JsonObject friend : fbUser.getFriends()) {
String friendId = friend.getString("uid");
queries.put(friendId, "SELECT post_id, message, type, comment_info, like_info, created_time FROM stream WHERE source_id=" + friendId + " AND actor_id=me() LIMIT 1000");
}
JsonObject multiqueryResults = facebookClient.executeFqlMultiquery(queries, JsonObject.class);
System.out.println(multiqueryResults.toString());
什么是预期的输出?我想做什么?
我试图打印我的查询结果。但是,我得到的是上面粘贴的堆栈中的异常。