Получайте комментарии Facebook через Graph API, но не скрытые комментарии из социального плагина. - PullRequest
2 голосов
/ 06 сентября 2011

Я уже использую Graph API для получения комментариев Facebook с URL.Это хорошо работает.

Но у меня есть проблема.Комментарии, которые скрыты от поля (социальный плагин) и отображаются в ответе JSON API.Но я не хочу, чтобы они появлялись. И нет поля для получения информации, если это модерируемый комментарий или нет.

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
)

Как видите, нет поля с информацией "умеренный"».Что мне делать?

Ответы [ 2 ]

1 голос
/ 27 января 2012

Я столкнулся с этим недавно и смог использовать 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";

После получения этих данных переберите и соберите все идентификаторы пользователя:

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

Используя идентификаторы пользователей, используйте график api, чтобы получить имя каждого пользователя, и создайте объект, который напоминает ответ json графика api:

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};

    });
});
1 голос
/ 15 сентября 2011

Двойной умеренный!

Вы можете создать запись в базе данных для каждого нового комментария через Fb.Event.subscribe и, как только вы модерируете комментарий в Facebook, отметьте комментарий в своей базе данных и распечатайте только отмеченные комментарии. , Это немного раздражает, но пока единственно возможное решение: (

Было бы замечательно, если бы Facebook мог реализовать эту информацию в своем JSON или лучше размещать только модерируемые комментарии в Graph API.

...