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 を使用して同様のクエリを実行し、.toString()を使用して JSON として出力できる JsonObject を取得しようとしていました。それでも、うまくいくことを期待して、試してみました。残念ながら、そうではありませんでした。
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());
期待される出力は何ですか?私は何をしようとしていますか?
クエリの結果を出力しようとしていました。しかし、私が得たのは、上に貼り付けたスタックの例外でした。