使用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,那么你需要使用PostOwnerID
和PostID
的组合,而不仅仅是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的注释而不是发布。
尝试通过应用程序login(http://developers.facebook.com/docs/authentication)进行身份validation,然后使用access_token prarameter调用GraphAPI。
你可以做这样的事情,以避免评论问题的整个计数:
- 获取对象( 一个post被认为是Graph API中的一个对象 )ID–据我的理解,你已经拥有它了?
- 用这个ID创build一个社交插件的评论 ,并获得它的代码。
- 将代码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
这应该显示所有的评论。