0

我正在考虑在我的网站上实施 Facebook 的评论插件。问题是我需要知道我网站上用户评论过的页面。

我已经阅读了 Facebook 的文档,但我没有找到适当的权限来了解这一点。

是否可以知道用户评论了哪些 URL?在这种情况下,我的应用需要哪些权限?

4

2 回答 2

2

我知道您已经接受了答案,但我认为这会对您有所帮助。

您可以首先在此处生成Facebook 评论的代码。

对于您在其中实现评论插件的每个页面,您将提供href用户正在阅读/访问的页面,因为它是插件所要求的。

您可以使用Javascript SDK来监听Facebook 事件,特别是您有comment.create事件的评论,每次发表评论时都会触发该事件。该事件将一个response对象传递给它的回调函数,其中包含href前面提到的,以及commentID刚刚生成的注释的。因此,您可以轻松跟踪用户评论了哪个页面(网址)。

示例(看看我们如何监听 comment.create 事件):

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : 'YOUR_APP_ID', // App ID
      channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });

    // Additional initialization code here, this is where we listen to events
    FB.Event.subscribe('comment.create',
      function(response) {
        alert('You commented on the URL: ' + response.href + 'CommentID: ' + response.commentID);
        // do an ajax call to server to store user,commentID,href info if you require
      }
    );
  };

  // Load the SDK Asynchronously
  (function(d){
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/en_US/all.js";
     ref.parentNode.insertBefore(js, ref);
   }(document));
</script>
于 2012-04-28T16:30:40.293 回答
1

称呼

graph.facebook.com/USER_ID/feed&fields=link 

对于您要查询的每个用户。此调用返回 id、name 和链接字段,该字段是评论对象的 url。并非所有帖子都有链接字段,因此您需要检查是否为空。然后,您可以比较链接字段以查找与您的网址匹配的内容。

提要包含来自评论框插件的评论帖子,仅在用户发布评论时选中“发布到 Facebook”框的情况下。

您需要向用户询问 read_stream 权限。

这一切都假设您知道用户是谁。您需要跟踪您身边的这些用户,因为无法查询 FB 的 API 以获取“在我的网站上发表评论的用户”。

于 2012-04-24T08:25:04.447 回答