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 を使用して同様のクエリを実行し、.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());

期待される出力は何ですか?私は何をしようとしていますか?

クエリの結果を出力しようとしていました。しかし、私が得たのは、上に貼り付けたスタックの例外でした。

4

0 に答える 0