我正在努力解决一个非常简单的问题。 Facebook文档一如既往,没有给我足够的解释。
我在我的网站上添加了一条facebook评论插件。并且使用“comment.create”事件的回调,我可以获得刚创建注释的信息。
FB.Event.subscribe('comment.create', function(response) {
alert(JSON.stringify(response));
});
json响应看起来像:
{"href":"http://siteaddress.com/page.htm", "commentID":"111122223333" }
我现在要做的是使用commentID检索单个评论的数据。虽然我期望以下方式可行:
https://graph.facebook.com/111122223333
它只是给了我“假”。我可以使用以下方法检索附加到该页面的所有评论:
https://graph.facebook.com/comments?ids=http://siteaddress.com/page.htm
但是,检索刚使用commentID创建的单个评论数据的正确方法是什么?
答案 0 :(得分:9)
我也遇到了同样的问题...所以我做的是,我查询了最后发表的评论或使用fql从fb评论表回复。在这里,我按时间按降序对评论进行排序,然后选择最顶层的评论。虽然有人可能认为如果同时发布两条评论,可能会引起歧义,但在我的情况下,我尝试并测试了它,但是我总是得到预期的结果。
FB.Event.subscribe('comment.create', function(response) {
FB.api({
method: 'fql.query',
query: "select post_fbid, fromid, object_id, text, time from comment where object_id in (select comments_fbid from link_stat where url ='URL_OF_THE_COMMENT_BOX') or object_id in (select post_fbid from comment where object_id in (select comments_fbid from link_stat where url ='URL_OF_THE_COMMENT_BOX')) order by time desc limit 1"
},
function(response) {
var feed = response[0];
alert(feed.text)
}
);
});
答案 1 :(得分:0)
如果您有评论ID,那么为什么不使用FQL并查询Comment Table以获取所有评论相关数据?
答案 2 :(得分:0)
我遇到同样的问题。似乎正在发生的是,commentID和parentCommentID实际上只是返回该页面的唯一ID,而不是注释本身的唯一ID。
单个注释的唯一ID是页面的唯一ID(即,当前返回的值为“commentID”),下划线后跟另一个数字(在我已完成的测试中长度为8位) 。您可以直接从响应提供的图表中查找。
我已经在Facebook上记录了一个错误,希望能够解决这个问题!地址下面的错误:
答案 3 :(得分:0)
嗯。我可以通过id(id格式,如:1234567890123456_12345678)来检索评论数据。我从这个网址中读取了这样的内容: https://graph.facebook.com/comments?ids= {$ url}的
答案 4 :(得分:0)
我结合了几种方法(包括来自Charsee)。
//此查询采用“commentID”和“href”。 commentID在comment.create“response”对象
上返回//此代码需要一个转义函数“addslashes(str)”来处理单引号。
var query =“SELECT text,fromid FROM comment WHERE post_fbid ='”+ addslashes(commentID)+“'AND(object_id in(select link_fbid from link_stat where url ='”+ addslashes(href)+“')或者object_id in(从comment中选择post_fbid,其中object_id在(从link_stat中选择comments_fbid,其中url ='“+ addslashes(href)+”')))“;