通过Graph API获取Facebook评论,但不要从社交插件Facebook评论框中获取隐藏的评论

通过Graph API获取Facebook评论,但不要从社交插件Facebook评论框中获取隐藏的评论,facebook,facebook-graph-api,facebook-comments,Facebook,Facebook Graph Api,Facebook Comments,我已经使用了从URL获取Facebook评论。很好用 但我有个问题。从框中隐藏的注释(社交插件),并显示在API的JSON响应中。但我不想让这些出现在我的照片里。而且,无论是否是有节制的评论,都没有字段可以获取信息 Array( [id] => 10150178257599373_16650724 [from] => Array ( [name] => Books, EBooks [category] => Auth

我已经使用了从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
)
如您所见,没有信息为“中等”的字段。我该怎么办?

双重温和

您可以通过为每个新评论创建一个数据库条目,并在Facebook上主持评论后,在数据库中标记该评论,然后仅打印标记的评论。这有点烦人,但到目前为止可能是唯一的解决方案:(


如果Facebook能够在其JSON中实现这些信息,或者最好只在Graph API中添加有节制的评论,那就太好了。

我最近遇到了这个问题,并且能够使用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,使用graph api获取每个用户名,并创建一个类似于graph 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};

    });
});
类似于问题:请参见此处的答案:-)