我正在尝试弄清楚如何使用FB获取在评论社交插件中发表评论的Facebook用户的名称。Event.subscribe 和 comment.create event。
我只在response
对象上看到 2 个属性:
-
response.href
:留下评论的页面的网址 -
response.commentID
:评论线程的 ID
是否可以实现客户端代码来获取留下评论的 facebook 用户的名称?我正在尝试为我的服务器保存额外的往返行程,以调用图形 API 以获取所有评论,然后尝试找出留下最新评论的用户是谁。 我认为可能有一种方法可以运行 FQL 查询,但我在这里不知所措。
我认为这对于Facebook事件来说是一件显而易见的事情,但他们的文档太差了,我什么也看不到。
更新:我已经尝试按照其他用户的建议使用FB.api并使用/me
但我无法使用它,因为留下评论的用户没有授予我任何权限。这令人困惑,因为他们登录以在评论框中发布评论,并且如果您转到用户的Facebook页面,则用户名是公共信息。所以我需要一种方法来查询评论用户的名称,而无需在 FB.api 中使用/me
。
此方法绝对可以获取名称..但是如果它是一个获得大量评论的线程,则存在竞争条件问题,因为在做出另一条评论之前可能不会发送获取评论的请求:
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);
});
});
这也适用于用户对应用进行身份验证。
在阅读了TMC下面的评论后,我意识到没有权限是不可能的。如果您想这样做,那么您将不得不要求每个评论者授予您基本权限。
原始答案
您可以使用Facebook Javascript SDK函数FB.api,其工作方式与PHP SDK的api函数相同,但返回JSON字符串。请查看此页面以获取文档。您可能还想查看注释对象文档。
注释具有一个属性from
,它提供用户的id
和name
。