2016-09-21 56 views
1

我想通过标记使用this Instagram端点来获取所有最近的媒体。这里的目的是跟踪所有最近的媒体标签。我已经配置了一个计划任务(使用Java和Spring)(每小时执行一次)来发送请求并获取数据。下面是执行顺序:Instagram API分页:下一页

  • 通过结果发送GET请求,Instagram的和以前存储max_tag_id(与空送,如果没有以前的ID)
  • 迭代,从分页元素提取next_max_tag_id并将其存储在数据库中针对与新max_tag_id再次对应标签
  • 发送GET请求,并继续
  • 停止,如果在next_url结果为空或媒体数返回小于20(配置)

一旦执行完成,下一次执行(让我们说一个小时后)将从先前存储的max_tag_id开始。

我看到的问题是,我在后续执行过程中从未收到过“最近的”文档。根据文档,在请求中传递max_tag_id应该返回所有媒体该ID,但它没有发生。我不断收到旧媒体。

如果我想在每次执行中获取最近的文档,是否需要在每次执行的第一个请求中通过nullmax_id?如果我这样做,每次执行都不会得到多余的文档吗?我试图问Instagram,但没有得到任何答复。另外,他们的文档对分页解释很少。不确定最近的媒体端点的分页是否反向工作。

回答

1

如果您希望最近不要使用max_tag_id,如果您使用max_tag_id,它将返回之前的所有媒体。

您需要通过拨打电话,只有min_tag_id得到min_tag_id和存储,在接下来的一个小时开始,如果有pagination.next_url,用它来获得下一组20,直到pagination.next_url不存在使用....存储的min_tag_id可在下一小时拨打电话。

非常您第一次呼叫而不max_tag_idmin_tag_id

您还可以设置&count=32,得到32个员额与每个API调用,(32是从我的经验最大值)

+0

谢谢你的精彩回答Krisrak,你是一个拯救生命的人:) –