使用Graph API检索Facebook Post Comments

我试图让Facebook的评论使用:

http://graph.facebook.com/[post_id]/comments 

它只能得到15条评论中的2条,并且没有count信息。

 { "data": [ { "id": "[post_id]", "from": { "name": "[name]", "id": "[id]" }, "message": "[message]", "created_time": "2011-01-23T02:36:23+0000" }, { "id": "[id]", "from": { "name": "[name]", "id": "[id]" }, "message": "[message]", "created_time": "2011-01-23T05:16:56+0000" } ] } 

有人知道为什么只有2条评论

此外,我想检索评论(默认数字)或检索评论与我的限制号码,并得到其评论数。 任何想法? (请使用Graph API)。

你需要从一个安全的请求https调用它,并提供一个access_token

 https://graph.facebook.com/19292868552_118464504835613/comments?access_token=XXX 

编辑:
post文档添加了该对象。 尝试点击comments连接,然后删除access_token并尝试看看不同之处。

为了得到Like count和comment count,那么你需要使用PostOwnerIDPostID的组合,而不仅仅是PostID

所以对于你的例子,这将是:

https://graph.facebook.com/153125724720582_184234384932460/comments

同样,正如其他一些答案中提到的,您需要使用https方法和auth_token

我经历了与评论相同的问题。 问题是我为testing用户使用访问令牌。 由于testing用户无法访问其他FB用户信息,因此仅显示了来自页面的评论。

作为一个健全的检查,你有“read_stream”的权限? 我可以看到使用“read_stream”的访问令牌的完整评论。 正如其他人所提到的,您必须使用https和访问令牌以及…

乌尔都语里有一个JUGAAR这个词,意思是找出路,只是为了完成工作。 所以为了这个目的,我做了这个JUGAAR,我希望它有帮助。

 $contents = file_get_contents("http://graph.facebook.com/" . $_GET['id'] . "/likes"); if (substr_count($contents, 'name')>0) { echo substr_count($contents, 'name') . " people like this album"; } 

顺便说一下,我也是这个Fb的新东西,我正在寻求帮助发表评论。 当我尝试使用graph.api./id/comments?access_token=sdfsfsdf&message=“D”时,它仍然返回id的注释而不是发布。

你可以做这样的事情,以避免评论问题的整个计数:

  1. 获取对象( 一个post被认为是Graph API中的一个对象 )ID–据我的理解,你已经拥有它了?
  2. 用这个ID创build一个社交插件的评论 ,并获得它的代码。
  3. 将代码embedded到您的网站中。

这将导致这个对象的所有评论。

为了得到每个对象的注释数,你可以执行一个fql查询 ,如下所示:

SELECT comments FROM stream WHERE post_id = [yourpostid]

这将在count参数下的comments数组中返回此对象的计数值

SELECT注释从streamWHERE post_id = [yourpostid]不应该在这种情况下工作..

在graphics调用成功发布到用户的墙上(使用应用程序的access_token)之后返回的id的forms是abcdef_qwerty(下划线分隔的id),其中在评论表的post_id中映射的post_id是forms“lmnop”的forms

得到类似这样的forms“abcdef_qwerty”的postid和评论的计数使graphics调用与应用程序生成的访问令牌似乎是唯一的解决scheme..

像这样: https : //graph.facebook.com/100002619172565_117323155031656?access_token=xxxxxxxxxxxxx

成功login后调用此方法facebookComments()

parameters.putString(“fields”,“message”); ………….// 这一点很重要

  AccessToken accessToken = AccessToken.getCurrentAccessToken(); public void facebookComments() { try { getFriends(accessToken, new GraphRequest.Callback() { public void onCompleted(GraphResponse response) { Log.e("keshav", "one" + response); CommonMethod.showAlert("res --> " + response, MainActivity.this); } } ); } catch (Exception e) { CommonMethod.showAlert("Exception is -> " + e, MainActivity.this); } } public void getFriends(AccessToken token, GraphRequest.Callback callback) { // TODO Comments Working but id return only GraphRequest requestt = new GraphRequest(token, "744511125731315_751199848395776/comments", null, HttpMethod.GET, callback); Bundle parameters = new Bundle(); parameters.putString("fields", "id"); // todo in use imp parameters.putString("fields", "name"); // todo in use imp parameters.putString("fields", "from"); // todo in use imp parameters.putString("fields", "message"); // todo in use imp requestt.setParameters(parameters); requestt.executeAsync(); } 

结果只有15条评论中的2条

向url添加限制参数:

  http://graph.facebook.com/[post_id]/comments?limit=1000 

这应该显示所有的评论。