сортировать список комментариев api facebook graph, как 'orderby = desc'? - PullRequest
13 голосов
/ 12 октября 2011

Я использую график api, чтобы получить комментарии к картинке, но я хочу сначала отсортировать результаты, создав время, а затем вернуться к последним данным. По аналогии с оператором sql 'order by create_time desc', я не знаю, есть ли такой параметр.

В настоящее время используется для смещения и ограничения доступа к последним данным, но также знает общее количество комментариев,

pagesize = 25;
offset = comments.count - pagesize;
limit = 25;

url = "https://graph.facebook.com/" + object_id +" / comments? Access_token = "+ access_token +" & limit = "+ limit +" & offset = "+ limit;

следующая страница :

offset -= 25

, но числовые комментарии иногда не точны

и результат запроса URL для возврата иногда не совпадает

Стоит ли иметь очень хорошее решение

Или я использовал неправильный путь (параметр «limit» и «offset») !!!


Спасибо за ваш ответ.

"Графика API" о существовании кэша?

я отправляю сообщение и 46 комментариев. Запрашивает url, задаю параметры:

смещение = 0 & предел = 1

Затем он должен вернуться к последнему комментарию (последнему), фактическому возврату к середине комментария, и я несколько раз проверял, установил смещение и предел. Согласно возвращенным результатам, средний последний комментарий

Если я установлю предельное значение, превышающее значение 'comment.count', будут возвращены все данные, официальный веб-сайт и Facebook соответствуют

Потому что причина кеша?

Еще раз спасибо ~

Ответы [ 2 ]

5 голосов
/ 04 августа 2012

@ dbau - Вам все же лучше использовать FQL. По моему опыту, если вы не делаете очень простой вызов, у вас очень мало контроля над тем, что вы получаете через вызов Graph API.

Почему вы не хотите использовать FQL? FQL является конечной точкой Graph API. Есть еще некоторые данные, которые могут быть возвращены только через FQL.

Это даст вам результат, который вы ищете. Запрос должен быть в кодировке URL. Я оставил это в простом тексте для ясности.

 https://graph.facebook.com/fql?access_token=[TOKEN]&q=
    SELECT id, fromid, text, time, likes, user_likes FROM comment
      WHERE object_id = [OBJECT_ID] ORDER BY time DESC LIMIT 0,[N]

Вы можете обнаружить, что не получаете [N] комментариев, которые возвращаются каждый раз, потому что Facebook отфильтровывает элементы, которые не видны access_token владельцу после запроса. Вы можете либо увеличить LIMIT и отфильтровать любые возвращенные избыточные результаты, либо, если вы используете пользователя access_token, вы можете добавить AND can_like = TRUE к предложению WHERE, чтобы гарантировать, что, если они существуют, [N] сообщения видны текущему пользователю возвращаются.

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

Graph API сначала возвращает последние объекты.

Facebook предоставляет 2 ключевых слова для фильтрации полученных данных.

  1. Limit: возвращает «предел» количества последних записей
  2. Смещение: возвращает «предельное» количество записей из позиции смещения

Таким образом, чтобы получить последние "x" комментарии, опубликованные для объекта

https://graph.facebook.com/[OBJECTID]?limit=[X]&offset=0

Для получения следующих "X" комментариев (по страницам)

https://graph.facebook.com/[OBJECTID]?limit=[X]&offset=[X*PAGENo]

Надеюсь, ответ вам достаточно ясен.

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