如何使用FB.Event.subscribe获取留下评论的Facebook用户的名字

时间:2011-05-20 08:50:56

标签: facebook facebook-fql

我正在试图弄清楚如何使用FB.Event.subscribe和comment.create事件获取在评论社交插件中留下评论的Facebook用户的名称。

我只在response对象上看到2个属性:

  • response.href:评论留在的网页的网址
  • response.commentID:评论主题的ID

是否可以实现客户端代码以获取留下评论的facebook用户的名称?我正在尝试为我的服务器保存一个额外的往返,以便调用图API来获取所有评论,然后尝试确定用户是谁离开了最近的那个。我认为可能有办法运行FQL查询,但我在这里不知所措。

我认为这对facebook事件来说是显而易见的事情,但他们的documentation非常糟糕我无法看到任何东西。

更新:我尝试使用其他用户建议使用FB.api并使用/me但我无法使用它,因为用户离开评论时没有授予我任何权限。这很令人困惑,因为他们登录后在评论框中发布评论,如果您转到用户的Facebook页面,则用户的名称是公共信息。所以我需要一种方法来查询评论用户的名字而不使用FB.api中的/me

2 个答案:

答案 0 :(得分:1)

这个方法绝对可以获得一个名称..但如果它是一个获得大量评论的线程,则存在竞争条件问题,因为在发出另一条评论之前可能无法发送获取评论的请求:

FB.Event.subscribe('comment.create', function(comment) {
    FB.api('comments', {'ids': comment.href}, function(res) {
        var data = res[comment.href].data;
        console.log(data.pop().from.name);
    });
});

无需用户验证您的应用即可使用。

答案 1 :(得分:0)

在阅读下面的TMC评论后,我意识到没有权限就不可能。如果你想要这个,那么你将不得不要求每个评论者授予你基本的权限。

原始回答

您可以使用Facebook Javascript SDK函数FB.api,其工作方式与PHP SDK的api函数相同,但返回JSON字符串。请查看this page以获取文档。您可能还想查看Comment Object Documentation

评论有一个属性from,用于提供用户的idname