搜索Facebook事件和分页(图谱API)

时间:2010-11-08 15:23:47

标签: facebook pagination facebook-graph-api

我正在请求此页面使用关键字

获取事件
"conference":https://graph.facebook.com/search?q=conference&type=event

这很好用。

问题在于返回了分页:

"paging": {
    "previous":"https://graph.facebook.com/search?q=conference&type=event&limit=25&since=2010-12-18T17%3A00%3A00%2B0000",
    "next":"https://graph.facebook.com/search?q=conference&type=event&limit=25&until=2010-11-04T16%3A29%3A59%2B0000"
 }

似乎有更多的事件与“会议”,但请求这2个分页URLS不返回任何数据。

这很奇怪,因为它对任何请求的关键字都是一样的,而Facebook API返回的分页URL似乎总是返回空数据。

有谁知道这是什么问题?

由于

3 个答案:

答案 0 :(得分:6)

我遇到了与地方查询相似的混淆。 “下一个”URL的行为与您描述的完全一致。

我可以使用这样的网址查询位置信息:

https://graph.facebook.com/search?access_token=INSERT_TOKEN&type=place&center=55.8660,-4.2715&distance=150&limit=10

回到JSON的前10个地方加上以下片段表明存在分页参数:

"paging": {
      "next": "https://graph.facebook.com/search?access_token=INSERT_TOKEN&type=place&center=55.8660\u00252C-4.2715&distance=150&limit=10&offset=10"

点击该网址无效。但我确实找到了限制和偏移参数的组合,这给了我有效的分页。

limit=10 & offset not defined => first 10 results
limit=20 & offset=10 => next 10 results
limit=30 & offset=20 => next 10 results
limit=40 & offset=30 => last 8 results (can stop here because less than 10 back)
limit=50 & offset=40 => confirmation that there are no more results

我意识到我有“限制”和“偏移”而不是你得到的“限制”和“直到”参数,但是,希望你可以应用相同的技术,即继续增加限制并包含日期/你最后一次结果的时间?

答案 1 :(得分:1)

我认为这是Facebook Graph API的标准做法。我想如果你的请求导致非空JSON,他们总会给你下一个分页,即使它可能是空的。

然而,我并非百分之百确定,因为Facebook Graph API似乎没有很好地记录......(例如他们说我们可以修改这个分页的东西,但没有明确解释如何去做)。

答案 2 :(得分:0)

似乎facebook最近改变了它。 这是修复:

对于在next和previous中返回的日期时间为 “2011-01-18T08 \ u00253A42 \ u00253A35 \ u00252B0000” 将所有出现的“\ u0025”替换为“%”,它应该可以正常工作。

如果你注意到facebook的日期时间格式,那就是 2011-01-18T08:42:35 + 0000 (由strtotime C函数接受的日期)