1

我在 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());

什么是预期的输出?我想做什么?

我试图打印我的查询结果。但是,我得到的是上面粘贴的堆栈中的异常。

4

0 回答 0