我正在请求此页面使用关键字
获取事件"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似乎总是返回空数据。
有谁知道这是什么问题?
由于
答案 0 :(得分:6)
我遇到了与地方查询相似的混淆。 “下一个”URL的行为与您描述的完全一致。
我可以使用这样的网址查询位置信息:
https://graph.facebook.com/search?access_token=INSERT_TOKEN&type=place¢er=55.8660,-4.2715&distance=150&limit=10
回到JSON的前10个地方加上以下片段表明存在分页参数:
"paging": {
"next": "https://graph.facebook.com/search?access_token=INSERT_TOKEN&type=place¢er=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函数接受的日期)