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
)

ご覧のとおり、「moderate」という情報を含むフィールドはありません。私は何をしますか?

4

2 に答える 2

1

ダブルモデレート!

Fb.Event.subscribeを介してすべての新しいコメントのデータベース エントリを作成し、Facebook でコメントをモデレートするとすぐに、データベースでコメントをマークし、マークされたコメントのみを印刷できます。少し面倒ですが、これまでのところおそらく唯一の解決策です:(

Facebook がその情報を JSON に実装できるか、管理されたコメントのみを Graph API に入れることができれば素晴らしいことです。

于 2011-09-14T23:53:36.310 に答える
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 に答える