【问题标题】:Fetching all Posts and Comments from a Facebook Page从 Facebook 页面获取所有帖子和评论
【发布时间】:2013-02-12 22:57:33
【问题描述】:

我正在尝试从 Facebook 页面获取所有帖子和 cmets。 到目前为止,使用以下 FQL 效果很好:

{'all_posts':
'SELECT created_time, post_id, actor_id, message, description, comments FROM stream 
   WHERE source_id=PAGE_ID ORDER BY created_time', 
'comments':
   'SELECT id, fromid, post_fbid, text, time, post_id FROM comment WHERE post_id   
    IN (SELECT post_id FROM #all_posts) ORDER BY post_id'
}

我正在尝试使用 RestFB 库,但我得到了

com.restfb.exception.FacebookResponseStatusException: Received Facebook error response 
(code 601): Parser error: unexpected '{' at position 0.

当我尝试执行查询时:

List<JsonObject> queryResults = facebookClient.executeQuery(query, JsonObject.class);

我该如何解决这个问题?

提前致谢。

【问题讨论】:

  • 您传递给executeQuery()的查询是什么?
  • 我通过上面“以下fql”之后提到的查询来执行查询。这就是错误,因为,正如我现在发现的那样,我必须使用 Multiquery-Support。我会立即发布工作代码作为答案。
  • 我稍后再回答,因为我要等 8 个小时才能回答。

标签: java facebook facebook-graph-api facebook-fql restfb


【解决方案1】:

我认为这是 RestFB 端的错误,解析结果 json,因为我得到了几个异常并且有点困惑。

正确的做法是使用 RestFB 的 Multiquery Support (Executing Multiqueries with RestFb)

Map<String, String> queries = new HashMap<String, String>();
queries.put("all_posts", "select created_time, post_id, actor_id, message, description, comments from stream where source_id=279947942083512 ORDER BY created_time");
queries.put("comments", "SELECT fromid, username, text, time, post_id FROM comment WHERE post_id in (SELECT post_id FROM #all_posts) ORDER BY post_id");

MultiqueryResults queryResults = facebookClient.executeMultiquery(queries, MultiqueryResults.class);

您必须按照1 中的说明提供 MultiqueryResults Bean

【讨论】:

  • 有人可以为这些查询制作一个 MultiqueryResults Bean 的示例吗? :)
  • 公开类 PostsAndCommentsMultiqueryResults { @Facebook("all_posts") 私有列表 帖子; @Facebook 私人列表 cmets; public List getPosts() { 返回帖子; } public List getComments() { return cmets; } }
  • 您必须为 StreamComment 和 StreamPost 创建 bean。您不能使用来自 RestFB 的 Post-Class,因为它是用于 Graph API
  • 哦,非常感谢!我正在尝试使用 RestFB 的图形 api 来做同样的工作,但效果不是很好......如果你知道一些东西,你可以看看 stackoverflow.com/questions/15117398/… pls 吗? :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-12
  • 2016-07-25
  • 2013-07-22
  • 1970-01-01
  • 2019-09-01
  • 1970-01-01
  • 2022-12-09
相关资源
最近更新 更多