2

我已经使用Graph API从 URL 获取 Facebook 评论。这很好用。

但我有一个问题。从框中隐藏的评论(社交插件),并显示在 API 的 JSON 响应中。但我不希望那些出现在其中。而且,无论是否是经过审核的评论,都没有获取信息的字段。

Array(
    [id] => 10150178257599373_16650724
    [from] => Array
    (
        [name] => Books, EBooks
        [category] => Author
        [id] => 182404265135935
    )
    [message] => Thank you, Facebook
    [created_time] => 2011-06-06T03:21:06+0000
)

如您所见,没有包含“中等”信息的字段。我该怎么办?

4

2 回答 2

1

我最近遇到了这个问题,并且能够使用 FQL 来获取没有标记为私有的评论(我认为这意味着未经审核?)我在 javascript 中执行了此操作,但没有理由无法在 php 中重写此代码或任何。

 fql = "SELECT post_fbid, fromid, object_id, text, time, comments FROM comment WHERE object_id IN (SELECT comments_fbid FROM link_stat WHERE url ='" + commentsUrl + "') and is_private = 0 limit 10";

取回此数据后,循环并获取所有用户 ID:

FB.api({method: 'fql.query',query: fql},function (comments) {
    $.each(comments, function (index, comment) {
       userIds.push(comment.fromid);
    });
});

使用用户 ID,使用图形 api 获取每个用户名并创建一个类似于图形 api 的 json 响应的对象:

FB.api('?ids=' + userIds.join(','), function (responseIds) { 

    $.each(comments, function (index, comment) {
        comment.message = comment.text;
        comment.created_time = comment.time;
        comment.from = {id: comment.fromid, name: responseIds[comment.fromid].name};

    });
});
于 2012-01-27T03:00:35.857 回答
1

双适中!

您可以通过Fb.Event.subscribe为每条新评论创建一个数据库条目,一旦您在 Facebook 上审核了评论,就在您的数据库中标记该评论并仅打印出标记的评论。这有点烦人,但到目前为止可能是唯一的解决方案:(

如果 Facebook 可以在他们的 JSON 中实现这些信息,或者最好只在 Graph API 中放置经过审核的评论,那就太好了。

于 2011-09-14T23:53:36.310 回答