Facebook Graph API:了解用户评论的网址?

时间:2012-04-24 03:54:27

标签: facebook facebook-graph-api

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

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

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

2 个答案:

答案 0 :(得分:2)

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

您可以先生成Facebook Comments here的代码。

对于您实施评论插件的每个页面,您将提供用户正在阅读/访问的页面的href,这是插件所需的。

您可以使用Javascript SDK收听Facebook events,以获取有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>

答案 1 :(得分:1)

致电

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

为您要查询的每个用户。此调用返回id,name和链接字段,该字段是注释对象的URL。并非所有帖子都有链接字段,因此您需要检查null。然后,您可以比较链接字段以查找与您的网址匹配。

仅当用户在发布评论时选中“发布到Facebook”复选框时,Feed才会包含评论框插件中的评论帖。

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

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