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

kir*_*ire 8 pagination facebook facebook-graph-api

我要求此页面使用关键字获取事件

"conference":https://graph.facebook.com/search?q=conference&type=event
Run Code Online (Sandbox Code Playgroud)

这很好用.

问题是返回的分页:

"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"
 }
Run Code Online (Sandbox Code Playgroud)

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

这很奇怪,因为它对于任何请求的关键字都是相同的,并且Facebook API返回的分页URL似乎总是返回空数据.

有谁知道这是什么问题?

谢谢

ste*_*hen 6

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

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

https://graph.facebook.com/search?access_token=INSERT_TOKEN&type=place&center=55.8660,-4.2715&distance=150&limit=10
Run Code Online (Sandbox Code Playgroud)

并获得了前10个位置的JSON以及以下片段,表明存在分页参数:

"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"
Run Code Online (Sandbox Code Playgroud)

点击该URL不起作用.但我确实找到了限制和偏移参数的组合,这给了我有效的分页.

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
Run Code Online (Sandbox Code Playgroud)

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


Enr*_*tyo 1

我认为这是 Facebook Graph API 的标准做法。我认为如果您的请求结果为非空 JSON,他们将始终为您提供下一个分页,即使它可能是空的。

然而我不是 100% 确定,因为 Facebook Graph API 似乎没有很好的文档记录......(例如他们说我们可以修改这个分页功能,但没有清楚地解释如何做到这一点)。