2011-01-25 4 views
40

Я пытался получить комментарии Facebook с помощью:Получить Facebook Комментарии к сообщению Использование Graph API

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).

+0

Привет, Джеффри, не могли бы вы привести примерный пост с таким поведением? Я проверил несколько сообщений, и API всегда возвращает все комментарии. Убедитесь, что вы предоставили правильный 'Post_ID' – Bartek

+1

@JeaffreyGilbert, как cani получает Post_ID для получения комментариев для этого PLS. предложите мне, я использую ту же функцию в своем приложении –

ответ

37

Вы должны вызвать его из безопасного запроса https и обеспечить access_token:

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

EDIT:
Добавлен объект из post документа. попробуйте щелкнуть соединение comments, а затем удалить access_token и попытаться увидеть разницу.

+0

Есть ли access_token для приложения fb? Я не хочу, чтобы люди сначала авторизировали мое приложение, за исключением того, что они хотят поставить комментарий. Я в правильном направлении? –

+4

@Jeafrey Gilbert: до тех пор, пока они комментируют что-то, что у вас есть, тогда вам не нужно авторизовать свое приложение или заниматься этим. Вам просто нужно авторизоваться ... так что 'access_token' является вашим – ifaour

+1

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

0

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

0

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

  1. Получить объект (a post is considered an object in the Graph API) ID-как я понимаю из вашего вопроса, вы уже это?
  2. Создайте Comments Social Plugin с этим ID и получите код для этого.
  3. Код для вставки на сайт.

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

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

SELECT comments FROM stream WHERE post_id = [yourpostid]

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

+0

как я могу получить post_id для получения комментариев, PLS. Предложи мне! –

+1

@HarshalKalavadiya Этот фрагмент для тестирования в разработке var body = 'Reading JS SDK documentation'; FB.api ('/ me/feed', 'post', {message: body}, function (response) { if (! Response || response.error) { alert ('Error occured'); } else { alert ('Почтовый ID:' + response.id); } }); –

4

Для того, чтобы получить Like счетчик и счетчик comment, то вам необходимо использовать комбинацию PostOwnerID и PostID не только PostID

Так для примера это будет:

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

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

1

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

0

SELECT, комментарии из потока WHERE post_id = [yourpostid] не будет работать в этом случае ..

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

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

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

+0

как я могу получить 100002619172565_117323155031656 как id для получения комментариев? –

+0

Вы получите это в ответ на публикацию на стене пользователя с помощью графического API – mjs

1

Существует слово 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", он по-прежнему возвращает комментарии для идентификатора вместо публикации.

3

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

-1

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

Добавить предельный параметр в URL:

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

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

0

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

parameters.putString ("поле", "сообщение"); ............. // Его важное

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(); 
    } 
Смежные вопросы