facebook graph api comment list sort , like 'orderby=desc'?

三世轮回 提交于 2019-12-21 07:15:20

问题


I use graph api to get the picture's comments, but I want to first sort the results by creating time and then return to the latest data. Similar to the sql statement 'order by create_time desc', I do not know if have such a parameter.

Currently used to offset and limit access to the latest data, but also know the total number of comments,

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

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

next page:

offset -= 25

but comments.ount of numerical sometimes is not accurate

and the result of the request URL to return to sometimes don't match

Whether to have very good solution

Or I used the wrong way (‘limit’ and ‘offset’ Parameter)!!!


Thank you for your answer.

"Graphics API" the existence of the cache?

i post a message and 46 comments.requests url, set the parameters:

offset=0&limit=1

Then it should return to the last comment (latest one), the actual return to the middle of a comment, and I tested a few times, set the offset and limit. According to the returned results, the middle one is the latest comment

If I set the limit value is greater than the 'comment.count', the returned data is all, the official website and facebook consistent

Because the cache reason?

Thanks again~


回答1:


@dbau - You are still better off using FQL. In my experience, unless you are making a very simple call, you have very little control over what you get via a Graph API call.

Why don't you want to use FQL? FQL is an endpoint of the Graph API. There is still some data that can only be returned via FQL.

This will get you the result you're looking for. The query needs to be URL encoded. I left it in plain text for clarity.

 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]

You may find you don't get [N] comments returned each time, because Facebook filters out items that are not visible to the access_token owner after the query is run. You could either up the LIMIT and filter out any excess results returned or if you are using a user access_token, you could add AND can_like = TRUE to the WHERE clause to be guaranteed that, if they exist, [N] posts visible to the current user are returned.




回答2:


Graph API returns latest objects first.

Facebook provides 2 keywords to filter the fetched data.

  1. Limit : Returns "limit" number of latest records
  2. Offset : Returns "limit" number of records from the offset position

So to retrieve latest "x" comments posted for an object

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

To retrieve next "X" comments (page wise)

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

Hope the answer is clear enough for you.



来源:https://stackoverflow.com/questions/7742498/facebook-graph-api-comment-list-sort-like-orderby-desc

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!