Facebook评论 - 网站和粉丝页面之间的同步

时间:2013-09-25 12:27:22

标签: php facebook facebook-comments

在网站文章和粉丝页面之间同步Facebook评论的最佳方式是什么。我想要实现的是:

  • 使用fb评论作为评论系统在网站上发布文章
  • 用户可以通过网站评论此文章
  • 用户可以通过Facebook粉丝页面评论此文章(例如,在分享本文的链接后)
  • 网站与fb之间的评论已同步

目前我做了所有用文档编写的内容,我所能做的只是通过网站评论文章,但我找不到从facebook上显示/访问此讨论的方法。即使添加评论后,我的帐户也没有显示任何活动。一切都只在网站上显示。

2 个答案:

答案 0 :(得分:1)

它被称为“评论镜像”,并且afaik现在在公共场合不可用。您可以在此页面上选择加入相关内容:https://developers.facebook.com/products/social-plugins/comments

答案 1 :(得分:-1)

我最近在我的网站上做了这个,虽然在Facebook页面上发布的评论通过网站,评论帖子的链接,重定向到facebook帖子,在那里可以评论。

在我使用的代码下面:

<script>
  function get_facebook_posts() {
       console.log('Loading facebook posts');
       FB.api('/|REPLACE WITH PAGE ID/feed?limit=10&access_token=|REPLACE WITH FB ACCESS TOKEN|', function(response) 
       {
          $.each(response.data, function(key, val){
            message = val['message'];
            if(message != 'undefined' && message != '' && message != null && typeof(message) != 'undefined'){
                identifier = val['id'];
                identifier_parts = identifier.split('_');
                spec_identifier = identifier_parts[1];

                var creator;
                if(typeof(val['admin_creator']) != 'undefined'){
                    creator = val['admin_creator']['name'];
                }
                else{
                    creator = '|REPLACE WITH YOUR DESIRED PAGE NAME|';
                }

                var post_html = '<div class="col-sm-4">'+
                                    '<div class="single-blog">'+
                                        '<img class="fbpostimage" id="post_image_'+ spec_identifier +'" src="images/logo.png" alt="" />'+
                                        '<h2>'+ creator +'</h2>'+
                                        '<ul class="post-meta">'+
                                            '<li><i class="fa fa-clock-o"></i><strong>Published on:</strong> '+ getDateString(val['created_time']) +'</li>'+
                                        '</ul>'+
                                        '<div class="blog-content">'+
                                            '<p>'+ val['message'] +'</p>'+
                                        '</div>'+
                                        '<a href="" class="btn btn-primary" data-toggle="modal" data-target="#blog-detail_'+ spec_identifier +'">Comments</a>'+
                                    '</div>'+
                                    '<div class="modal fade" id="blog-detail_'+ spec_identifier +'" tabindex="-1" role="dialog" aria-hidden="true">'+
                                        '<div class="modal-dialog">'+
                                            '<div class="modal-content">'+
                                                '<div class="modal-body">'+
                                                    '<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>'+
                                                    '<iframe src="https://www.facebook.com/plugins/post.php?href=https%3A%2F%2Fwww.facebook.com%2F|REPLACE WITH PAGE ID|%2Fposts%2F'+ spec_identifier +
                                                    '&width=500" width="500" height="498" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true"></iframe>'+
                                                '</div> '+
                                            '</div>'+
                                        '</div>'+
                                    '</div>'+
                                '</div>';

                $('#|REPLACE WITH THE ID OF THE DIV WHERE POSTS MUST APPEAR|').append(post_html);

                console.log(identifier);


                FB.api('/' + identifier + '/attachments?access_token=|REPLACE WITH FACEBOOK ACCESS TOKEN|', function(subresponse){
                        if(subresponse.data.length > 0){
                            if(typeof(subresponse.data[0]['media']) != 'undefined'){
                                if(typeof(subresponse.data[0]['media']['image']) != 'undefined'){
                                    $('#post_image_' + spec_identifier).attr('src', subresponse.data[0]['media']['image']['src']);
                                }
                            }
                        }
                });
            }
          });
       });

       function getDateString(date){
        var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
          "Jul", "Aug", "Sept", "Oct", "Nov", "Dec"
        ];
        var date = new Date(date);
        var hours = date.getHours();
        var minutes = date.getMinutes();
        var ampm = date.getHours() >= 12 ? 'PM' : 'AM';
        hours = hours % 12;
        hours = hours ? hours : 12; // the hour '0' should be '12'
        minutes = minutes < 10 ? '0' + minutes : minutes;
        var strTime = hours + ':' + minutes + ' ' + ampm;

        return monthNames[date.getMonth()] + " " + date.getDate() + " " + date.getFullYear() + " " + strTime;
       }
  }
  window.fbAsyncInit = function() {
    FB.init({
      appId            : '|REPLACE WITH FACEBOOK APP ID|',
      autoLogAppEvents : true,
      xfbml            : true,
      version          : 'v2.10'
    });
    FB.AppEvents.logPageView();
    FB.Event.subscribe('xfbml.render', get_facebook_posts);
  };

  (function(d, s, id){
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     js.src = "//connect.facebook.net/es_LA/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));
</script>

您必须替换||之间的每个文本与实际的APP和页面数据。

希望它有助于