我一直在使用Facebook4j来处理与Facebook图形API相关的要求,我的要求非常简单。
要求:我需要经常搜索给定关键字的Facebook对象(所有公共对象 - 帖子/评论/页面等等),并将所有结果保存到数据库中。
问题:虽然要求看起来很直接但我仍然坚持处理结果的分页并稍后调用API而不会在连续调用API时丢失任何项目(帖子/页面/评论)
进行一些研究我发现图API提供了几种分页方法,基于光标是最好的和推荐的。但遗憾的是,基于光标的搜索并不适用于所有类型的对象。所以我不得不选择使用直到参数的基于时间的分页。
问题1.我的决定是否正确?
以下是我使用Facebook4j进行搜索API调用时获得的上一个和下一个网址示例
previous = https://graph.facebook.com/v1.0/search?limit=200q=infographic&access_token=
[ACCESS_TOKEN]&since=1400152500&__previous=1,
next = https://graph.facebook.com/v1.0/search?limit=200&q=infographic&access_token=
[ACCESS_TOKEN]&until=1399983583
假设我做了API调用并使用Facebook4j API方法,那么我应该可以使用 获取下一个方法并继续。
facebook.fetchNext()
但是当我在我的应用程序中得到一个异常时,或者在没有进一步结果的时候,我认为我应该能够持续存在/直到值并在将来将它们用于以后的API调用并继续获得搜索结果从我上次停止的地方开始。
Q2。关于分页的假设是否正确?
所以我假设我未来的API调用类似于下面的内容。我不确定是使用'since'还是'until'。
问题3.我在下面调用API以继续搜索上一次搜索的方式是正常的吗?
ResponseList<JSONObject> results = facebook.search("KEYWORD",new Reading().limit(200).until("1399983583"));
此外,我不确定这些结果是否以这样的方式分页,当我使用提供的“NEXT url”/ fetchnext()时,我获得了最新的结果集?
问题4.现在澄清一下我提供的NEXT网址在分页和未来的API调用方面是否正常工作?
如果我的上述方法有误,请提出我应该遵循的最佳做法来处理这一要求。