关于facebook评论插件的一个简单问题

Posted

技术标签:

【中文标题】关于facebook评论插件的一个简单问题【英文标题】:A simple question about facebook comments plugin 【发布时间】:2011-07-19 11:10:27 【问题描述】:

我正在努力解决一个非常简单的问题。 facebook 文档一如既往地没有给我足够的解释。

我在我的网站上附加了一个 facebook cmets 插件。并且使用“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

它只是给了我“错误”。我可以使用以下方法检索附加到该页面的所有 cmets:

https://graph.facebook.com/comments?ids=http://siteaddress.com/page.htm

但是,检索刚刚使用 commentID 创建的单个评论数据的正确方法是什么?

【问题讨论】:

请编辑您的问题以提供更多信息。 【参考方案1】:

我也面临同样的问题......所以我所做的是,我使用 fql 从 fb cmets 表中查询最后发布的评论或回复。在这里,我按时间降序对 cme​​ts 进行排序,然后选择最前面的一个。虽然有人可能认为如果同时发布两个 cmet,可能会导致歧义,但在我的情况下,我尝试并测试了它涉及超过 2 个用户,但我总是得到预期的结果。

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)
      
    );
  );  

【讨论】:

【参考方案2】:

您好,如果您有评论 ID,那么为什么不使用 FQL 并查询 Comment Table 来获取所有评论相关数据?

【讨论】:

谢谢,Awais。它是使用commentID 检索评论数据的唯一方法吗?该文档说使用 post_fbuid(在“comment.create”上返回的commentID)进行查询是不可能的,因为它没有索引。你能给我看一个使用commentID的FQL示例吗?【参考方案3】:

我也有同样的问题。似乎正在发生的事情是,commentID 和 parentCommentID 实际上只是返回该页面的唯一 ID,而不是评论本身的唯一 ID。

单个评论的唯一 ID 是页面的唯一 ID(即当前作为“commentID”返回的值),下划线后跟另一个数字(在我所做的测试中为 8 位) .您可以直接从响应提供的图表中查找。

我已经在 Facebook 上记录了一个错误,希望能得到修复!错误地址如下:

http://bugs.developers.facebook.net/show_bug.cgi?id=16535

【讨论】:

感谢您的回复,@Darren。似乎没有简单的方法可以使用 FB.event.subscribe() 检索和保存您的评论。顺便说一句,我发现了一篇解释评论同步问题的博文:[link]loadedguntheory.com/blog/listpost/tim/…【参考方案4】:

嗯。我可以通过 id 检索评论数据(id 格式如下:1234567890123456_12345678)。我从 url 中检索的 ID 如下: https://graph.facebook.com/comments?ids=$url

【讨论】:

【参考方案5】:

我结合了几种方法(包括来自 Charsee)。

// 这个查询需要一个“commentID”和“href”。在comment.create "response" 对象上返回commentID

// 此代码需要转义函数“addslashes(str)”来处理单引号。

var query = "SELECT text, fromid FROM comment WHERE post_fbid='"+addslashes(commentID)+"' AND (object_id in (select cmets_fbid from link_stat where url ='"+addslashes(href)+"') 或object_id in (select post_fbid from comment where object_id in (select cmets_fbid from link_stat where url ='"+addslashes(href)+"')))";

【讨论】:

以上是关于关于facebook评论插件的一个简单问题的主要内容,如果未能解决你的问题,请参考以下文章

URL 更改后的 Facebook 社交插件评论

Html2canvas: facebook 插件评论

Facebook评论社交插件不显示评论?

Facebook 社交插件和 jQuery 问题

如何在 UIWebView 中使用 Facebook 评论插件

Facebook 评论插件 - 单击底部的“Facebook 评论插件”文本时内容消失