【问题标题】:Get Facebook comments via Graph API, but not hidden comments from the social plugin Facebook comments box通过 Graph API 获取 Facebook 评论,但不能从社交插件 Facebook 评论框中获取隐藏评论
【发布时间】:2011-09-06 12:01:17
【问题描述】:

我已经使用Graph API 从 URL 获取 Facebook cmets。效果不错。

但是我有一个问题。从框中隐藏的评论(社交插件),并显示在 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-graph-api facebook-comments


【解决方案1】:

双中度!

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

如果 Facebook 可以在他们的 JSON 中实现该信息,或者最好只将经过审核的 cmets 放入 Graph API 中,那就太好了。

【讨论】:

    【解决方案2】:

    我最近遇到了这个问题,并且能够使用 FQL 来获取没有标记为私有的 cmets(我认为这意味着未审核?)我在 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};
    
        });
    });
    

    【讨论】:

      猜你喜欢
      • 2014-01-23
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 2013-06-23
      • 1970-01-01
      相关资源
      最近更新 更多