从facebook通过restFb java api提取反应数据?

时间:2016-05-23 11:58:10

标签: java facebook facebook-graph-api restfb

新的facebook api允许我们对页面上的帖子做出反应,因为这个fb创建了反应边缘 我可以通过简单地从图形api资源管理器中点击后id /反应来从这个边缘提取数据。

这是图api请求: -

  

1497117777255241_1526440124323006 /反应

和响应数据

  

{“data”:[       {         “id”:“100008182891350”,         “名字”:“苛刻的夏尔马”,         “类型”:“爱”       }],“paging”:{       “游标”:{         “之前”:“TVRBd01EQTRNVGd5T0RreE16VXdPakUwTmpRd01EQTROalk2TnpnNE5qUTRNRE0zT1RFek16RXkZD”,         “之后”:“TVRBd01EQTRNVGd5T0RreE16VXdPakUwTmpRd01EQTROalk2TnpnNE5qUTRNRE0zT1RFek16RXkZD”       }}

现在我尝试使用java rest fb api做同样的事情,我首先提取帖子,然后使用该对象,我调用get reaction方法,但我没有得到任何数据。 以下是相同的示例代码: -

reactionsCount=post.getReactionsCount();
        System.out.println("post id-->"+post.getId()+"  reactions--->"+post.getReactionsCount());
        reactionsObj=post.getReactions();

对于上面的帖子ID:对它有反应,但我通过restFB得到的反应计数为零,但我从图api获取数据。

每次reactionObj也为null(通过reactionsObj = post.getReactions()获得; )

if(reactionsObj!=null)
            {
                System.out.println("bring it on reactions-------");
                    for (ReactionItem reactionListItem : reactionsObj.getData()) 
                    {
                        reactionsMap.put("id", reactionListItem.getId());
                        reactionsMap.put("name", reactionListItem.getName() );
                        reactionsMap.put("type",reactionListItem.getType() );


                    }
}

我成功获得帖子/评论/喜欢,只有反应边缘会产生问题。 请让我知道我哪里出错了。

修改

Connection<Post>  postSearch =FacebookClientBean.getFacebookclient().fetchConnection(pageId+"/feed", Post.class);

1 个答案:

答案 0 :(得分:4)

评论中收集的解决方案:

要在帖子上获得反应,您必须在请求中添加字段,如下所示:

gfortran -c testF.f
g++ -c testC.cpp
g++ -o test testF.o testC.o -lg2c

内容的错误消息需要v2.6或更高版本,提示错误的Graph API版本用于请求节点。 在fetchConnection(pageId+"/feed", Post.class, Parameter.with("fields","reactions.summary(1)")); 构造函数中选择正确的Version

DefaultFacebookClient