【问题标题】:Retrieving the comment count in from a Facebook comments box从 Facebook 评论框中检索评论计数
【发布时间】:2011-03-21 23:41:57
【问题描述】:

我在我的网站上使用<fb:comments>,但我不知道如何从具有特定 XID 的评论框中检索评论数。

我尝试使用以下代码拦截所有新的 cmets:

FB.Event.subscribe('comments.add', function(response) { alert("Comment was added."); });

虽然我从未收到警报。有任何想法吗?我只需要任何给定盒子的 cmets 数量。

【问题讨论】:

    标签: php api facebook comments fbml


    【解决方案1】:

    您应该能够通过 FQL 从link_stat 表中获取comment_count 字段,方法是提供带有评论插件的页面的url

    如果这不起作用,您还可以通过 xidcomment 表中获取所有 cmets,然后自己计算它们(FQL 不支持 COUNT)。但是返回的记录数量是有限制的,所以很可能只会返回前 5,000 个 cmets。

    【讨论】:

    • 我还需要检测何时添加了新评论,以便通知网站所有者。
    【解决方案2】:

    您在问两个不同的问题。 1) 如何获取 cmets 的计数,以及 2) 如何使用 JavaScript 跟踪评论事件。对于 2,您需要在评论标签中包含 notify="true" 才能触发事件。

    <fb:comments xid="comment_xxx" notify="true"></fb:comments>
    

    【讨论】:

    • 您在哪里看到提到了notify="true" 属性?他们的文档中甚至都没有提到它!
    【解决方案3】:

    找了好久,终于找到了。

    保存后就可以读取cmets了。

    你可以看到: Guardar comentarios facebook

    【讨论】:

      【解决方案4】:

      您可以使用这个简单的 fb 标签获取您的 cmets 的数量:

      <fb:comments-count href="${url_of_your_page}"></fb:comments-count> Comment
      

      【讨论】:

        【解决方案5】:

        这段代码对我有用

        <script>
            // fb init 
            window.fbAsyncInit = function() {
                FB.init({
                    appId:  'you app id',
                    status: true,
                    cookie: true,
                    xfbml:  true
                });
        
                // this event is fired where a comment is created
        
                FB.Event.subscribe('comment.create', function(response) {
                    alert(response.commentID);
                });         
        
            };
        
          // im using jquery to make ajax request
          $(function(){
        
            $.ajax({
              url: "http://graph.facebook.com/?ids=[SITE URL]",
              dataType: 'json',
              success: function(data){ 
                var items = [];
                $.each(data, function(key, val) {
                  items.push(val)
                  });
                    alert(items[0].comments);
                    console.log(items);
                   }  
             });
        

        items[0].cmets 就是你要找的东西

        看一下控制台你可以看到items是这样的:

        [Object {
        id="site url",  
        shares=65,  
        comments=87
        }]  
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-12-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-04
          • 2017-05-30
          • 2012-03-09
          相关资源
          最近更新 更多