我正在试图弄清楚如何使用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
。
答案 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
,用于提供用户的id
和name
。