Получить комментарии к постам в Facebook с помощью Graph API - PullRequest
41 голосов
/ 25 января 2011

Я пытался получить комментарии на Facebook, используя:

http://graph.facebook.com/[post_id]/comments

Это приводит только к 2 из 15 комментариев и без count информации.

{
    "data": [
        {
            "id": "[post_id]",
            "from": {
                "name": "[name]",
                "id": "[id]"
             },
             "message": "[message]",
             "created_time": "2011-01-23T02:36:23+0000"
        },
        {
             "id": "[id]",
             "from": {
             "name": "[name]",
                 "id": "[id]"
             },
            "message": "[message]",
            "created_time": "2011-01-23T05:16:56+0000"
        }
    ]
}

Кто-нибудь знает, почему только 2 комментария?

Кроме того, я хочу получить комментарии (номер по умолчанию) или получить комментарии с моим номером лимита и получить их количество комментариев. Любая идея? (Пожалуйста, используйте Graph API).

Ответы [ 10 ]

38 голосов
/ 25 января 2011

Вам нужно позвонить по защищенному запросу https и предоставить access_token:

https://graph.facebook.com/19292868552_118464504835613/comments?access_token=XXX

РЕДАКТИРОВАТЬ:
Добавлен объект из post документ.попробуйте щелкнуть соединение comments, а затем удалите access_token и попробуйте увидеть разницу.

4 голосов
/ 03 февраля 2011

Чтобы получить счет Like и счет comment, вам нужно использовать комбинацию PostOwnerID и PostID, а не просто PostID

. Для вашего примераэто будет:

https://graph.facebook.com/153125724720582_184234384932460/comments

Опять же, как упоминалось в некоторых других ответах, вам нужно использовать метод https вместе с auth_token

3 голосов
/ 27 октября 2011

У меня возникла такая же проблема с комментариями.Проблема заключалась в том, что я использовал токен доступа для тестового пользователя.Поскольку тестовые пользователи не имеют доступа к информации других пользователей FB, были показаны только комментарии со страниц.

2 голосов
/ 31 августа 2011

В урду есть слово JUGAAR, которое означает, что нужно найти выход, просто чтобы выполнить работу.Так что для той же цели я сделал этот JUGAAR, я надеюсь, что это поможет.

$contents = file_get_contents("http://graph.facebook.com/" . $_GET['id'] . "/likes");
if (substr_count($contents, 'name')>0) {
    echo substr_count($contents, 'name') . " people like this album";
}

Кстати, я также новичок в этом Fb, я ищу помощь, чтобы оставлять комментарии.Когда я пытаюсь использовать graph.api./id/comments?access_token=sdfsfsdf&message="D ", он по-прежнему возвращает комментарии для идентификатора вместо публикации.

1 голос
/ 03 февраля 2011

Как проверка работоспособности, у вас есть разрешение "read_stream"?Я могу видеть полные комментарии с моим токеном доступа, который использует "read_stream".Как уже упоминали другие люди, вы должны использовать https и токен доступа ...

0 голосов
/ 07 июля 2017

После успешного входа вызовите этот метод facebookComments ()

parameters.putString ("fields", "message"); ............. // его важно

 AccessToken accessToken = AccessToken.getCurrentAccessToken();
    public void facebookComments() {
        try {
            getFriends(accessToken, new GraphRequest.Callback() {
                        public void onCompleted(GraphResponse response) {
                            Log.e("keshav", "one" + response);
                            CommonMethod.showAlert("res  --> " + response, MainActivity.this);
                        }
                    }
            );
        } catch (Exception e) {
            CommonMethod.showAlert("Exception is -> " + e, MainActivity.this);
        }
    }

    public void getFriends(AccessToken token, GraphRequest.Callback callback)
    {
        // TODO Comments Working but id return only
        GraphRequest requestt = new GraphRequest(token, "744511125731315_751199848395776/comments",
                null, HttpMethod.GET, callback);
        Bundle parameters = new Bundle();
        parameters.putString("fields", "id");           // todo in use imp
        parameters.putString("fields", "name");           // todo in use imp
        parameters.putString("fields", "from");           // todo in use imp
        parameters.putString("fields", "message");           // todo in use imp
        requestt.setParameters(parameters);
        requestt.executeAsync();
    }
0 голосов
/ 11 февраля 2015

Это приводит только к 2 из 15 комментариев

Добавить параметр ограничения к URL:

 http://graph.facebook.com/[post_id]/comments?limit=1000

Это должно показать все комментарии.

0 голосов
/ 12 августа 2011

ВЫБРАТЬ комментарии из потока, ГДЕ post_id = [yourpostid] не должен работать в этом случае ..

идентификатор, который возвращается после успешного вызова графа для публикации на стене пользователя (с использованием access_token приложения) имеет форму abcdef_qwerty (символ разделения с подчеркиванием), где в качестве идентификатора записи, который отображается в post_id таблицы комментариев, используется форма "lmnop" ..

для получения количества лайков и комментариев к ним.этот идентификатор поста формы "abcdef_qwerty", выполняющей вызов графа с помощью сгенерированного приложением токена доступа, кажется единственным решением ..

что-то вроде: https://graph.facebook.com/100002619172565_117323155031656?access_token=xxxxxxxxxxxxx

0 голосов
/ 31 января 2011

Вы можете сделать что-то подобное, чтобы избежать проблем с количеством комментариев:

  1. Получить идентификатор объекта ( сообщение считается объектом в Graph API ) ID - насколько я понимаю из вашего вопроса, у вас уже есть?
  2. Создайте плагин для комментариев с этим идентификатором и получите код для него.
  3. Вставить код на свой сайт.

Это приведет ко всем комментариям для этого объекта.

Чтобы получить количество комментариев на объект, вы можете выполнить fql запрос , что-то вроде этого:

SELECT comments FROM stream WHERE post_id = [yourpostid]

Это вернет в массиве comments с параметром count количество отсчетов для этого объекта.

0 голосов
/ 28 января 2011

Попробуйте аутентифицироваться через App Login (http://developers.facebook.com/docs/authentication), а затем вызвать GraphAPI с помощью pra_meter метки доступа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...